如何检查是否从其他表单C#

时间:2018-09-25 07:36:50

标签: c#

我有Form1,在这种形式下,我有此代码

Form2 frm = new Form2();
frm.ShowDialog();

现在是我的问题:如何知道form2是否以这种方式被调用
form2中的Button事件中?
form2中的按钮事件中,我要检查ShowDialog()是否被称为 FROM FORM1(不是来自另一种形式) ,如果单击了按钮, form2已关闭!

4 个答案:

答案 0 :(得分:2)

您可以使用Form.Owner Property

Form1:

Form2 frm = new Form2();
frm.ShowDialog(this); // owner parameter

Form2:

if (this.Owner != null)
{ 
    // Owner is not null, there is a calling form
    // Do something
    if (this.Owner is Form1)
    {
       Form1 form1 = (Form1)this.Owner; // Form1 called this form!
    }
}

答案 1 :(得分:1)

请尝试更精确地询问您的要求。

public partial class Form2: Form
{   
    public static bool wasCalledFromForm1 = false;
    public Form2 (bool form1Called = false)
    {
        InitializeComponent();
        wasCalledFromForm1 = form1Called;
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
        if (wasCalledFromForm1) this.Close;
    }
}

按钮1打开Form2:

Form2 form2 = new Form2(true);
form2.ShowDialog();

答案 2 :(得分:0)

据我所知,您想知道是否有一种方法可以检查showDialog是否已成功调用,为此,您可以使用以下代码段:-

$pattern = '~<table(?>(?!</?table).)*</table>~is';
$output = preg_replace($pattern, '', $body);

PS:-将来,请正确,仔细地撰写您的问题,以便我们更轻松地回答:) :):)

答案 3 :(得分:0)

带有构造函数的示例。

SELECT *
FROM edges AS e
JOIN nodes AS n ON e.source = n.id OR e.dest = n.id