0
我有一个BaseControl
类,它几乎可以完成我需要的所有控件。.Net UserControl实现Show和ShowDialog方法
从我的控制中实施void Show
和DialogResult ShowDialog
方法很方便。
UPDATE,这是为方便起见,我用我的BaseControls
所有的地方,在某些情况下,我想possibilit显示(显示的对话中),他们最简便的代码...
这里在ShowDialog
方法的代码,所述方法Show
是非常相似:
Form ContainingForm = null;
public DialogResult ShowDialog(string title, Control parent) {
ContainingForm = new Form();
this.Dock = DockStyle.Fill;
ContainingForm.Controls.Add(this);
ContainingForm.Text = title;
//
DialogResult res = ContainingForm.ShowDialog();
ContainingForm.Close();
return res;
}
private void Close(DialogResult result) {
if (ContainingForm != null) {
ContainingForm.DialogResult = result;
// original code: form is not closing...
// ContainingForm.Close();
}
}
// button on BaseControl closing the control
protected void Button_Click(object sender, EventArgs e) {
this.Close(DialogResult.OK);
}
我试图接近在this post建议,因此关闭在ShowDialog
方法。在使用上述帖子的原始版本和修改版本中,该窗口不关闭。
我看过关于发送“关闭”消息到ContainingForm
,但使用Invoke
也没有工作。
此外,当使用Show
而不是ShowDialog
时,我会期待其他一些问题,因为表单不会阻塞UI线程吗?
任何人都知道答案?
什么问题了'Form'这让你去尝试这样的事情? –
Form类没有参数化构造函数,所以清楚了这里发生了什么:'ContainingForm = new Form(parent);' – LarsTech
继承与非winforms项目兼容... – neggenbe