不同窗体中的委托事件不能触发问题
jsstb 2008-12-30 03:18:52 我在窗体A中使用了自定义控件,该控件中委托了事件ColorChanged,在窗体B中响应该事件:
先在解决方案资源管理器中引用命名空间ctlResolution,然后在窗体B中写如下代码
ctlAppearance.ctlAppearance ctlAppearance1; //声明对象
ctlAppearance1 = new ctlAppearance.ctlAppearance(); //实例化对象
//事件委托给方法ctlAppearance1_ColorChanged(Color color1)
ctlAppearance1.ColorChanged += new ctlAppearance.ctlAppearance.DelegateColorChange(ctlAppearance1_ColorChanged);
void ctlAppearance1_ColorChanged(Color color1)
{
this.BackColor = color1; //改变窗体颜色
}
在控件中定义委托代码为
public delegate void DelegateColorChange(System.Drawing.Color color1);
问题是:调试时候发现在B窗体中没有触发事件ColorChanged?但是如果我把方法ctlAppearance1_ColorChanged()的代码写到A窗体中
,就可以触发。即在同一个窗体下可以触发事件,跨窗体则不行?