我有一个winform打开(ShowDialog)其他winforms。
有没有办法从打开的winform中获取第一个winform而不将其作为参数传递或使用“公共静态”解决方案?
编辑:没注意到我在用户控件中,我怎样才能获得表单?提前致谢。
答案 0 :(得分:0)
表单的所有者属性怎么样?
答案 1 :(得分:0)
this.FindForm()将获取托管自定义控件的表单。获得表单后,您可以使用.Owner属性。
IMHO。
答案 2 :(得分:0)
我想出的唯一方法是在UserControl中挂钩Paint事件。我知道,这是不好的做法,但它确实有效。我并不自豪...... :)
private bool _uglyOnlyDoSomethingFirstTimeInPaintEventFlag = false;
private void btnDestination_Paint(object sender, PaintEventArgs e)
{
if (!_uglyOnlyDoSomethingFirstTimeInPaintEventFlag)
{
_uglyOnlyDoSomethingFirstTimeInPaintEventFlag = true;
//...do FindForm() here and you should get the right form
}
}