在我的User Control
上,我创建了一个事件来通知我的主窗体,标签控件必须切换其标签。必须在按钮单击用户控件时触发此事件。 (我在另一个用户控件中有一个非常类似的事件正常工作)
在我的用户控件中:
public delegate void EventHandler(object sender, EventArgs args);
public event EventHandler TabChangeRequested = delegate { };
protected void OnTabChangeRequested()
{
if (TabChangeRequested != null)
{
TabChangeRequested(this, new EventArgs());
}
}
private void btnBackToSelectType_Click(object sender, EventArgs e)
{
this.OnTabChangeRequested();
}
以我的主要形式:
public FormMain()
{
InitializeComponent();
myUserControl.TabChangeRequested += (sender, args) => { ChangeRunTabToType(); };
}
private void ChangeRunTabToType()
{
if (this != null)
this.ChangeTabIndex(metroTabControlRun, 1);
}
当我运行我的程序时,我在行上获得NullReferenceException
myUserControl.TabChangeRequested += (sender, args) => { ChangeRunTabToType(); };
有谁知道它来自哪里?
答案 0 :(得分:1)
如果myUserControl尚未实例化(那就是null),那么我建议移动:
myUserControl.TabChangeRequested += (sender, args) => { ChangeRunTabToType(); };
到你创建/分配myUserControl的地方之后!