我想知道
我有多个已打开的表单,我想激活我的表单,但它被另一个表单覆盖了,最好的方法是调用哪个代码:
form.show()
和form.activate()
之间的区别。我有多个已打开的表单,我想激活我的表单,但它被另一个表单覆盖了,最好的方法是调用哪个代码:
form.show()
或form.activate()
?form.show()
和form.activate()
之间的区别。form.show()
或form.activate()
?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前面(处于焦点状态)。从文档中得知
激活窗体会将其置于前台(如果该应用程序是活动的) 或闪烁窗口标题(如果该应用程序不是活动的)。该方法必须在窗体可见时才能生效。如果要确定应用程序中的活动窗体,使用 ActiveForm 属性或 ActiveMdiChild 属性(如果您的窗体位于多文档界面 (MDI) 应用程序中)。
显示控件等效于将 Visible 属性设置为 true。调用 Show 方法后,Visible 属性返回 true 的值,直到调用了 Hide 方法。
回答
我有多个已经打开的窗体,我想激活我的那个在另一个窗体后面的窗体,使用哪种方法更好,form.show() 还是 form.activate()?
如果您的窗体已经打开,请使用 Activate
方法,这可能是您想要的。
提示:如果您想知道 .net 方法的作用,只需在谷歌中输入它,通常会首先显示帮助信息,以及大量其他问题和答案。
form.activate()
激活表单,这意味着如果您有输入元素(如文本框),它将专注于该特定表单,而不考虑其他任何表单。例如,如果您显示了表单1、2和3。如果您激活表单2,则表单2将成为用户的焦点。
如果您使用form.show()
,它只会向用户显示/显示表单。因此,在用户参与方面,activate()
具有最高优先级。
Form.Show()
创建一个新的窗体实例,而 Form.Activate()
将已经存在的窗体置于前台。