【发布时间】:2010-03-05 05:23:13
【问题描述】:
我有自定义控件,我在对话框中呈现。 这个自定义控件有一个链接标签 lnkLable。当我点击 lnkLable 时,我想关闭打开的窗口。
现在我正在寻找我的控件的父级,它最终将成为对话控件,然后调用它的 dispose 方法,我觉得这样做不是很好的技术。
【问题讨论】:
我有自定义控件,我在对话框中呈现。 这个自定义控件有一个链接标签 lnkLable。当我点击 lnkLable 时,我想关闭打开的窗口。
现在我正在寻找我的控件的父级,它最终将成为对话控件,然后调用它的 dispose 方法,我觉得这样做不是很好的技术。
【问题讨论】:
使用表单上的Close() 方法将其关闭。
private void button1_Click(object sender, EventArgs e)
{
Control btn = sender as Control;
Form frm = btn.Parent as Form;
frm.Close();
}
如果是模态对话框,你也可以通过调用Hide()方法来关闭它,因为模态对话框会在模态泵退出时自动销毁,而当对话框隐藏时,泵也会退出。
【讨论】:
您必须记住,控件可能不是直接在表单上,而是在另一个容器中,例如面板,在这种情况下,您的控件的父级将不是表单。
一旦你有了表单的实例,就使用Form.Close Method
【讨论】: