form.show和form.Activate之间的区别

时间:2018-04-19 05:51:16

标签: c# .net winforms

我想知道form.show()form.activate()之间的区别。

我有多个已经打开的表单,我想激活我的表单,这是另一种表单的形式,这是调用我想要的表单的最佳方式 form.show()form.activate()

5 个答案:

答案 0 :(得分:3)

方法Show()向用户显示表单。

方法Activate()将表单放在前面(它给表单焦点)。

例如:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.Show();
        this.Activate();
    }
}

上面的代码将通过调用form2.Show();来显示form2,但由于this.Activate();调用,form1将位于form2(焦点)的前面。

请参阅MSDN文档:

答案 1 :(得分:2)

来自文档

Form.Activate Method ()

  

如果表单处于活动状态,则激活表单会将其显示在前面   应用程序,或如果不是,它会闪烁窗口标题   积极的应用。该方法必须具有该表单   任何影响。要确定应用程序中的活动表单,请使用   ActiveForm属性或ActiveMdiChild属性(如果您的表单是)   在多文档界面(MDI)应用程序中。

Form.Show Method

  

显示控件等同于将Visible属性设置为   真正。调用Show方法后,Visible属性返回一个   值为true,直到调用Hide方法。

<强>答案

  

我有多个已打开的表单,我想激活   我的形式是另一种形式的背后,这是最好的方式来打电话给我   期望的形式form.show()或form.activate()?

如果您的表单已经打开Activate,则可能是您想要的

提示:如果您想知道.net方法的作用,只需将其输入谷歌,通常帮助是首先显示的内容,加上无数其他问题和答案

答案 2 :(得分:1)

根据msdn Form.Activate()&amp; Form.Show()

激活(): -

  

如果这是活动应用程序,则激活表单会将其显示在前面,如果这不是活动应用程序,则会闪烁窗口标题。该表单必须可见才能使此方法产生任何效果。

显示(): -

  

您可以使用此方法显示非模态表单。使用此方法时,窗体的Owner属性设置为owner。非模态表单可以使用Owner属性来获取有关拥有表单的信息。调用此方法与设置非模态的Owner属性,然后调用Show()方法相同。

     

显示表单相当于将Visible属性设置为true。调用Show方法后,Visible属性返回值true,直到调用Hide方法。

您可以访问以上链接以获取更多信息

现在,如果您的目的更明确,我们可能会在“特定方式”中为您提供帮助&#34;

阅读编辑后#34;激活&#34;是最好的,我的答案也与@TheGeneral完全相同

答案 3 :(得分:1)

form.activate()激活表单,这意味着如果您有输入元素(例如文本框),它将专注于该特定表单,而不管其他任何形式。例如。如果您已显示表单1,2和3.如果激活表单2,表单2将聚焦于用户。

如果您使用form.show(),它只会向用户显示/显示表单。因此,activate()在用户参与度方面具有最高优先级。

答案 4 :(得分:0)

Form.Show()创建了表单的新示例,而Form.Activate()则将已经存在的表单置于前台。