2011-11-04 54 views
4

System.Windows.Forms.ComboBox有程序员可以处理两个不同的事件的事件:寻找一个触发只有当用户选中一个复选框

  • SelectionChangeCommitted - 事件触发只有当用户更改所选项目
  • SelectedIndexChanged - 事件也会在选择以编程方式更改时引发

是否有类似System.Windows.Forms.CheckBox的问题?

澄清: 我正在寻找一个事件来处理,当我通过调用像CheckBox.Checked = true这样的语句以编程方式设置复选框时不会被解雇。

+0

号的WinForms对此相当毫无歉意,您可以随时知道您何时在代码中对其进行了更改。设置一个bool标志。 –

回答

4

只是处理Click事件。任何时候点击一个复选框,它都会被切换。

private void checkBox1_Click(object sender, EventArgs e) 
    { 
     if (((CheckBox)sender).Checked) 
     { 
      // do stuff 
     } 
    } 
+0

谢谢,这很好。由于更改'.Checked'属性不会触发Click事件。 –

1

由于Control.focused只有当用户点击鼠标的控制是真实的,你可以使用下面的代码来响应,只有当用户选中复选框

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    if(checkBox1.Focused) 
    { 
     //do ur stuff here 
    } 
} 
相关问题