【问题标题】:Windows Form C# "MouseClick" event does not fire when clicking radio button单击单选按钮时不会触发 Windows 窗体 C#“MouseClick”事件
【发布时间】:2015-10-19 17:56:07
【问题描述】:

我正在使用一个 Windows 窗体,我在其中创建了一系列单选按钮 programmaticaly。我想创建一个事件来记录已选择其中一个收音机,如果是这样,我启用“确定”按钮。

我有我的事件处理程序...

        protected void Checked_Changed(Object sender, EventArgs e)
    {
        foreach (Control c in this.Controls)
        {
            if (c is RadioButton)
            {
                RadioButton r = (RadioButton)c;
                if (r.Checked)
                {
                    this.OK.Enabled = true;
                }
            }
        }            
    }

但是!!问题是我似乎不知道我应该寻找什么事件来触发这个处理程序

我尝试过使用

  • 点击
  • 鼠标点击
  • 鼠标移动

            this.Click += new System.EventHandler(this.Checked_Changed);
    

.. 事件,但 只有在我点击单选按钮以外的任何东西时才有效

我希望你们能帮助我。太感谢了, 杰克。

【问题讨论】:

  • 相当模糊,显然你做错了。 “this.Click”正确的几率非常接近于零。这听起来像是表单的 Click 事件,而是订阅单选按钮的 CheckChanged 事件。全部。

标签: c# winforms events click radio-button


【解决方案1】:

您将单击事件处理程序分配给Form,而不是单选按钮。

这是一个以编程方式创建单选按钮并分配事件处理程序的示例。

private void Form1_Load(object sender, EventArgs e)
{
    // Create radio buttons
    RadioButton rb1 = new RadioButton();
    RadioButton rb2 = new RadioButton();
    RadioButton rb3 = new RadioButton();

    // Positioning on form
    rb1.Left = 10;
    rb2.Left = 10;
    rb3.Left = 10;
    rb1.Top = 10;
    rb2.Top = 30;
    rb3.Top = 50;

    // Assign event handler
    rb1.CheckedChanged += new EventHandler(RadioCheckChanged);
    rb2.CheckedChanged += new EventHandler(RadioCheckChanged);
    rb3.CheckedChanged += new EventHandler(RadioCheckChanged);

    // Add to form
    this.Controls.Add(rb1);
    this.Controls.Add(rb2);
    this.Controls.Add(rb3);
}

private void RadioCheckChanged(object sender, EventArgs e)
{
    // Enable button here
}

【讨论】:

    【解决方案2】:

    您正在使用this.Click,您需要使用this.radioButton.CheckedChanged.Click 或您正在使用的任何事件,否则您订阅的是表单,而不是单选按钮

    this.radioButton.CheckedChanged += new System.EventHandler(this.Checked_Changed);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 2020-02-20
      • 1970-01-01
      • 2016-04-25
      相关资源
      最近更新 更多