从 Windows 窗体应用程序调用一个类

3
我正在学习Windows Forms,在处理Windows Forms和类时遇到了困难。我想制作一个表单,用户可以在其中输入华氏温度,然后单击“转换”按钮,将输入值传递给“转换”类进行转换为摄氏度,最后将华氏度和摄氏度都显示在消息框中。
我已经设计好了这个表单,也知道如何创建类。但我不知道如何将表单中的输入值(华氏度)传递到类中,然后从表单中调用转换后的值并在消息框中显示。
由于我是C#的初学者,所以希望您能理解并提供简单易懂的答案。谢谢!
3个回答

8

您需要创建方法。

public class Convertor
{
 public datatype FarenheitToCelsius(String value)
 {
  datatype celsius;
  ...conversion logic   
  return celsius;
 }
}

那么你需要调用类的方法。
public class form1
{
   public void button_click(arguments...)
   {
       Convertor c = new Convertor();
       MessageBox.Show(c.FarenheitToCelsius(textbox1.text));
   }
}

Note: this is just a partial example


是的,我知道如何在类中创建方法和转换逻辑,但我的问题是如何在这种情况下在 MessageBox 中显示摄氏度结果。 - okr
谢谢...我明白你在这里做什么,但是当我这样做时,在MessageBox行中会出现一个错误,说“需要非静态字段、方法或属性的对象引用。我该如何纠正这个问题? - okr
@Oskar - 只需将方法取消静态化并创建转换器类的实例以访问该方法即可消除错误。 - Pranay Rana
如果我想在用户没有输入任何值的情况下添加错误消息,我该怎么做?我尝试了if/else语句,但它没有起作用。 - okr

1

在类中,您需要声明两个公共属性,一个是setFarenheit,另一个是getConvertedheit,现在您可以调用该类并创建以下属性。以下两个属性位于类内部。

public string setFarenheit { set; }
public string getConvertedheit { get; set; }

并将转换后的华氏值分配给您类中的getConvertedheit属性。

getConvertedheit = heitConvertedintoCelcius;//your converted celcius heit temp inside the class.

在 Form 类中,如果它们存在于同一命名空间中,您可以像下面这样调用它们。
HeitConvertingClass hcc = new HeitConvertingClass();
hcc.setFarenheit=Userinput(the datatype is your choice may be int or float);
MessageBox.Show(hcc.getCovertedheit.ToString());

1

好的,这里有两种方法可以实现:数据绑定或通过文本框的TEXT属性访问值。

在这种情况下,第二种方法更容易展示,所以我们选择这种方法。

您需要在CONVERT按钮的Click事件处理程序中添加以下代码(假设您的转换类具有一个CONVERT方法,该方法接受华氏温度作为字符串并返回要显示的字符串)。

convert c = new convert();
myConversionString as string = c.ConvertForDisplay(MyTextBoxName.Text);
MessageBox.Show(myConversionString);

这就是将该值传递到您的类的基本方式,以及最终结果返回到UI的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接