我正在尝试将华氏温度写入Celsius转换器,但单击按钮时没有任何反应 而且我不知道为什么。请帮帮我。
它是用C#编写的,我有一个带有标签,按钮,输入文本框和输出的多行文本框的表单。
namespace _14._6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click( object sender, EventArgs e)
{
int farenhait;
int celsius;
farenhait = Convert.ToInt32(textbox2.Text);
celsius = Convert.ToInt32(5.0 / 9.0 * (farenhait - 32));
textBox1.Text = farenhait + "grader på farenhait skalan motsvarar \n " + celsius + "grader celsius";
}
}
}
答案 0 :(得分:7)
假设声明:
但是当我按下按钮时没有任何事情发生......
字面上是真的(,即在处理程序button1_Click
的第一行放置一个断点时它没有碰到断点)然后处理程序发生了一些事情。因此,转到表单设计器并再次双击该按钮以连接处理程序。
答案 1 :(得分:1)
活动是否已接通?
单击设计器中的按钮,然后查看属性窗口(文件列表右下方),然后单击事件按钮(看起来像一个小闪电)并向下滚动,直到找到Click
,然后在那里输入button1_Click
,如果它还没有在那里,那就会将事件连接起来。
或者,您可以在表单的构造函数中手动添加它:
public Form1()
{
InitializeComponent();
this.button1.Click += new EventHandler(button1_Click);
}
答案 2 :(得分:0)
调试器究竟告诉你什么是错的?
不要偏离原来的问题,我建议使用一种称为抽象的技术。这方面的一个例子是创建一个单独的类,它将获取将完成任务的参数。
public class TemperatureConverter
{
public void Convertion(int fahrenheit, int celsius)
{
// Input your conversion syntax here.
}
}
现在,通过该特定类可以处理转换,您可以在按钮上的表单上提供必要的错误处理,然后您可以使用这些值实际调用它。
private void button1_click(object sender, EventArgs e)
{
// Error Handling
TemperatureConverter tc = new TemperatureConverter();
tc.Conversion(textbox1.Text, textbox2.Text);
}
在这个非常差的示例中,您必须将字符串强制转换为整数,否则会出错。但这是一个帮助更好地遵循面向对象的例子。
你的另一个问题:“当我点击按钮时没有任何反应”。这让我相信 EventHandler 已被破坏。请按照以下步骤操作:
这是Sean提供的编码方法的设计者方法。
希望这有帮助。