如何获得呼叫者winform

时间:2010-10-13 08:55:49

标签: .net winforms

我有一个winform打开(ShowDialog)其他winforms。

有没有办法从打开的winform中获取第一个winform而不将其作为参数传递或使用“公共静态”解决方案?

编辑:没注意到我在用户控件中,我怎样才能获得表单?

提前致谢。

3 个答案:

答案 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
        }
    }