Windows C# 表单 "MouseClick" 单击单选按钮时不会触发事件
Windows Form C# "MouseClick" event does not fire when clicking radio button
我正在使用 windows 表单,我在其中创建了一系列单选按钮 编程。我想创建一个事件来记录这些收音机之一已被选中,如果是这样,我启用 "OK" 按钮。
我有我的事件处理程序...
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;
}
}
}
}
但是!!问题是我似乎不知道我应该寻找什么事件来触发这个处理程序。
我尝试使用
- 点击
- 鼠标点击
MouseUp
this.Click += new System.EventHandler(this.Checked_Changed);
.. 事件,但 只有在我单击除单选按钮以外的任何内容时它才有效。
希望大家能帮帮我。太感谢了,
杰克.
您正在将点击事件处理程序分配给 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
}
您正在使用 this.Click
,您需要使用 this.radioButton.CheckedChanged
或 .Click
或您正在使用的任何事件,否则您订阅的是表单,而不是单选按钮
this.radioButton.CheckedChanged += new System.EventHandler(this.Checked_Changed);
我正在使用 windows 表单,我在其中创建了一系列单选按钮 编程。我想创建一个事件来记录这些收音机之一已被选中,如果是这样,我启用 "OK" 按钮。
我有我的事件处理程序...
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;
}
}
}
}
但是!!问题是我似乎不知道我应该寻找什么事件来触发这个处理程序。
我尝试使用
- 点击
- 鼠标点击
MouseUp
this.Click += new System.EventHandler(this.Checked_Changed);
.. 事件,但 只有在我单击除单选按钮以外的任何内容时它才有效。
希望大家能帮帮我。太感谢了, 杰克.
您正在将点击事件处理程序分配给 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
}
您正在使用 this.Click
,您需要使用 this.radioButton.CheckedChanged
或 .Click
或您正在使用的任何事件,否则您订阅的是表单,而不是单选按钮
this.radioButton.CheckedChanged += new System.EventHandler(this.Checked_Changed);