让窗体最前置的话,可以使用:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
这样调用:
SetForegroundWindow(this.Handle); //当前窗体是this
或者调用:
this.Activate(); //当前窗体是this
但是这两种方法都会激活窗体,且前者不能在最小化时使用。
如果使用:
this.TopMost=true;
this.TopMost=false;
的话,在下一次操作窗体之前,窗体都是最前的。
通过更改Window.Topmost 属性 (System.Windows)可以实现此功能
Topmost获取或设置一个值窗口是否显示在最顶层。 当属性值为True时,窗口前置。
当窗口承载在浏览器中时,不能设置或获取该属性。
下面是一个示例:
Form1 fm = new Form1();//新建窗口
fm.TopMost = true;//置于最顶层
fm.Show(this);//必须加上this,否则上一句无效
Form 属性
TopMost=true;
当你操纵完后
给他的属性设置为false;
就不会排在最前面了
form1 f1 = new form1();
f1.ShowDialog();
用f1.ShowDialog(); 就可以一直在前面
用f1.Show(); 就可以不是一直在前面
在事件中重新show该窗体,即把f1.Show(); 放到你说的那个事件中重新调用一下。f1是你题目里说的想要显示在最前面的窗体。