[英]call an event from another event in c#
我在用C#编程时有一个问题。 我想从另一个这样的事件中调用一个事件。
private void button1_Click(object sender, EventArgs e)
{
Form2 formulario = new Form2();
formulario.ShowDialog();
// here i call an event from the second form. that event is radiobutton_checkedchange
formulario.radioButton1_CheckedChanged(sender, e);
问题是我看每种软件如何解决此问题...他们说我一个事件就像一个方法,但我认为并不相同,因为当我像方法那样调用该事件时,它看起来就像只调用一次。 该事件无法识别已检查的更改。
我错了吗 ? 这是C#中的可能吗 感谢所有人,我是事件编程的新手。 对不起,我英语不好
首先, radioButton1_CheckedChanged
不是事件,它可能是事件处理程序。 最后,它仍然是一种与其他方法一样的方法。
您不应该直接调用事件的事件处理程序,而应该创建另一个方法以及那里的调用。 将其放在您的Form2
:
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{ // private, only accessible from the class itself
this.SetState();
}
public void SetState()
{ // public, accessible from anywhere
// put your original code from radioButton1_CheckedChanged here
}
这样,您不必调用特定于事件的代码,但是可以将其写成一个单独的方法,该方法更易于使用且用途明确。
如果两个表单共享相同的数据对象/视图模型,则可以从那里设置值。 从OOP的角度来看,这会更好。 查看MVVM或MVC可以找到好的设计模式。
听起来您在radioButton1_CheckedChanged
中有逻辑,您也想在单击按钮时调用它。 如果是这种情况,则将通用逻辑移至新方法并从两个地方调用它。
如果要更改radioButton1
的选中状态,则只需更改其状态即可。 事件hnadlers 响应 UI更改,但不生成它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.