从我的主表单中,我在mouseclick上打开了几个其他表单,如下所示:
主要表格:
...
private void btn_Click(object sender, EventArgs e){
frmNewForm newForm = frmNewForm();
newForm.Show();
}
在新表单中,我想检查是否有任何数据要显示,如果没有立即关闭表单。 新表格:
...
public frmNewForm(){
InitializeComponent();
// check if opening this form makes sense
if(noData){
Close();
}
}
但是,我在frmNewForm.Show()
处抛出异常:无法访问该对象。
如果翻译与Visual Studio的翻译不完全相同,我很抱歉:我正在使用其他语言版本。
无论如何,我该怎样做才能安全关闭frmNewForm
?
答案 0 :(得分:3)
您不希望在新表单的构造函数中执行此操作。相反,您需要在Load
事件上执行此操作,以便在关闭它之前完成加载。
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.load.aspx
private void Form1_Load(object sender, EventArgs e)
{
if (noData) this.Close();
}
或者,如果您知道不需要打开表单,请在显示之前进行检查!
答案 1 :(得分:2)
如果noData
是frmNewForm
类的公共布尔属性,则可以执行以下操作:
if( !newForm.noData )
{
newForm.Show();
}
有意义吗?