将主要申请表放在前面

时间:2014-07-04 20:17:42

标签: c# visual-studio-2010

我正在处理紧凑型框架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()

的情况下将屏幕放在前面

3 个答案:

答案 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
}

}