为什么我的按钮点击不起作用?

时间:2013-06-05 15:09:20

标签: c# winforms click

我正在尝试将华氏温度写入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";
        }
    }
}

3 个答案:

答案 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 已被破坏。请按照以下步骤操作:

  1. 进入设计模式
  2. 选择按钮
  3. 打开属性
  4. 你会看到一个几乎有闪电的按钮,点击它
  5. 找到您的点击,并确保正确连接EventHandler。
  6. 这是Sean提供的编码方法的设计者方法。

    希望这有帮助。