我正在处理紧凑型框架3.5,有这个问题。ScanOutMenu
是一个带有两个按钮的表单,只有在这个屏幕BringToFront()
不起作用。在所有其他屏幕中我有输入字段,它得到了关注,BringToFront()
将表格放在前面。
private void menuItem1_Click(object sender, EventArgs e)
{
this.Close();
ScanOutMenu scanOutMenu = new ScanOutMenu();
scanOutMenu.BringToFront();
}
此外,我尝试了scanOutMenu.TopMost = true;
这也无效。我认为ScanOutMenu
表单没有输入字段且没有焦点BringToFront()
无效。
ScanOutMenu
表单是主要的申请表单,我需要在不使用scanOutMenu.Show()
或scanOutMenu.ShowDialog()
答案 0 :(得分:0)
您是否尝试过启用TopMost属性?
this.TopMost = true;
//then if you want to remove it just put to false
答案 1 :(得分:0)
迟早,在使用CE应用程序时,您必须亲自使用Windows API调用。 <{1}}可以做你在
之后的事情SetForegroundWindow
请参阅此处的API文档:http://msdn.microsoft.com/en-us/library/ms940024.aspx
答案 2 :(得分:0)
如果您已将其打开,则需要将打开的对象置于前面。 在示例中,您将展示一个尚未显示的对象。
ScanOutMenu scanOutMenu = new ScanOutMenu(); // Creates a new object
scanOutMenu.BringToFront(); //Brings to front the Object that is not shown.
因此,要打开它,您必须使用所需的表单创建一个非局部变量,并将该变量分配给您要打开的表单。
示例:
class test{
AnotherForm op;
public test(){
AnotherForm nForm = new AnotherForm(); //Starts a form object
op = nForm; // Assigns the form to be shown to the non-local variable
nForm.Show(); // shows the form object to user
}
private void menuItem1_Click(object sender, EventArgs e)
{
op.BringToFront(); //This will work
}
}