以编程方式触发System.Windows.Forms.Control事件

假设我有一个Checkbox控件:
CheckBox cb = new CheckBox();
cb.CheckedChanged += delegate(object sender, EventArgs e)
{
    MessageBox.Show("hello");
};
如何以编程方式触发此事件? 我可以
cb.Checked = !cb.Checked;
cb.Checked = !cb.Checked;
但那很难看,会引发两次......     
已邀请:
我会重构你的代码:
CheckBox cb = new CheckBox();
cb.CheckedChanged += delegate(object sender, EventArgs e)
{
    ShowMessageBox();
};

private void ShowMessageBox()
{
    MessageBox.Show("hello");
}
现在,请拨打
ShowMessageBox
而不是尝试模拟事件。将您需要的任何信息从事件传递给方法,以防它需要更多来执行其任务:
cb.CheckedChanged += delegate(object sender, EventArgs e)
{
    ShowMessageBox(cb.Checked);
};

private void ShowMessageBox(bool checkedValue)
{
    MessageBox.Show(string.Format("The box was {0}checked", 
        checkedValue ? "" : "un"));
}
    

要回复问题请先登录注册