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

本文关键字:不起作用 我的 按钮 为什么 | 更新日期: 2023-09-27 18:17:08

我想写一个华氏到摄氏转换器,但当我点击按钮时什么也没发生我也不知道为什么请帮帮我。

它是用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";
        }
    }
}

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

假设语句:

但是当我点击按钮时什么也没发生…

字面上为真(即。当在处理程序button1_Click的第一行放置断点时,它没有击中断点),然后处理程序发生了一些事情。因此,转到窗体设计器并再次双击该按钮以连接处理程序。

事件是否已连接?

点击设计器中的按钮并查看属性窗口(在文件列表的右下方),然后点击事件按钮(看起来像一个小闪电)并向下滚动直到找到Click,然后在那里输入button1_Click(如果还没有),这将连接事件。

或者,您可以在表单的构造函数中手动添加它:

    public Form1()
    {
        InitializeComponent();
        this.button1.Click += new EventHandler(button1_Click);
    }

调试器究竟告诉你什么是错误的?

为了不偏离你最初的问题,我建议使用一种叫做抽象的技术。这方面的一个例子是创建一个单独的类,它将接受完成任务的参数。

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. 打开属性/gh>
  4. 你会看到一个几乎像闪电一样的按钮,点击它
  5. 找到你的on点击,并确保EventHandler连接正确。

这是Sean提供的编码方法的设计方法。