-1

我现在正在创建一个程序,它将有 10 个按钮供用户单击:1 - 10。程序会告诉他们它是否可以被 2 整除。

我不完全确定我需要怎么做,因为我才开始在 Windows 窗体中编程。这可能真的很简单,但我就是无法理解它!

我希望能够读取单击的按钮...通过循环传递...然后告诉用户他们单击的数字是否可被二整除。

我有所有的代码来完成这项工作,但这只是单击按钮时的一部分,我无法获得要通过循环传递的数字来测试它。我可以复制出每个事件字段下的所有测试代码,但有人告诉我我只需要复制一次。这将意味着我的代码会更加整洁。

4

3 回答 3

3

关于什么:

//in the form constructor
button1.Click += new EventHandler(button_Click);
button2.Click += new EventHandler(button_Click);
button3.Click += new EventHandler(button_Click);
//and so on

那么方法可能是这样的:

private void button_Click(object sender, EventArgs e){
   string n = ((Button)sender).Text;
   int number;
   if(int.TryParse(n, out number)){
      if(number % 2 == 0)
         MessageBox.Show(n + "  is divisible by 2");
      else 
         MessageBox.Show(n + "  isn't divisible by 2");
   }
}
于 2012-12-05T21:22:05.160 回答
1

你可以:

        void button1_onClick(object sender, EventArgs e)
        {
            bool result = IsDivisibleByTwo(1);
        }

        void button2_onClick(object sender, EventArgs e)
        {
            bool result = IsDivisibleByTwo(2);
        }

        bool IsDivisibleByTwo(int x)
        {
            return (x % 2 == 0);
        }

或者,您可以使用每个按钮的值标记每个按钮,然后从事件发送方获取值以传递给 IsDivisble 方法。

于 2012-12-05T21:24:44.890 回答
0

在您的Button1_Click事件中,您应该将button1.Text其作为数字。您将需要转换为int, 通过Convert.ToInt32(button1.Text)。它应该从那里按您的需要工作。

于 2012-12-05T21:26:02.717 回答