将事件放在C#中的其他事件中

时间:2014-05-28 12:42:16

标签: c# events

我最近问过一个问题,但我还不够清楚。所以我会试着用一些代码来解释一下。

所以,我正在制作一个有两种模式的空白地图,你可以用两个单选按钮在模式之间切换。

我想说的是:

private void hamburgButton_Click(object sender, EventArgs e)
{
      city = "Hamburg";
      textBoxStadt.Show();
      okButton.Show();     
}

在此内部:

private void gyakRadioButton_CheckedChanged(object sender, EventArgs e)
{ 

}

但是当我这样做时,我会收到错误,指出缺少大括号。

我该怎么办?

编辑:这是整个代码:

namespace Német_vaktérkép_1._2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void gyakRadioButton_CheckedChanged(object sender, EventArgs e)
        { 
           private void hamburgButton_Click(object sender, EventArgs e)
           {
               city = "Hamburg";
               textBoxStadt.Show();
               okButton.Show();
           }
       }            
    }
}

Edit2:好的,我想做的是空白地图中有两种不同的模式。一种“学习”模式和一种“询问”模式,可以测试你。当您选择学习单选按钮时,单击一个按钮,它会显示您的姓名,但如果您选择询问单选按钮,则会出现一个文本框,您必须输入该城市的名称,并检查您是否正确。我目前有两个不同的程序要做,我正在尝试将它们结合起来。

1 个答案:

答案 0 :(得分:1)

你应该解释你实际上想要实现的目标,而不是你要如何实现它。你试图实现它的方式(无论它是什么)都没有意义,因为你不能把一个方法放在另一个方法中。没错,那些是方法,而不是事件。它们是事件处理程序,即在引发事件时执行的方法。

我认为当您选中Button时,您实际想要做的是“点击”RadioButton。在这种情况下,您有两个选择:

  1. Button的{​​{1}}事件处理程序中取出代码并将其放在自己的方法中,然后从两个事件处理程序中调用该方法。
  2. 调用另一个事件处理程序中的Click Button方法来引发PerformClick事件,从而执行Click事件处理程序。