Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 强制窗体在焦点/顶部打开_C#_Forms_Desktop Application - Fatal编程技术网

C# 强制窗体在焦点/顶部打开

C# 强制窗体在焦点/顶部打开,c#,forms,desktop-application,C#,Forms,Desktop Application,我有一个类库,可以打开两个表单:第一个是启动屏幕,在加载程序集时显示加载消息。第二个显示了一个窗体,上面有一些控件。我的问题是,我的类库是通过web小程序和JNI调用的。我的表单总是显示在浏览器页面后面 我知道我有几个不同的选择,但什么是确保我的表单在第一次打开时在前面打开的最好方法?我不想让他们永远保持领先。集中注意力和加强注意力似乎不起作用 public MyForm() { InitializeComponent(); this.Focus(); this.Brin

我有一个类库,可以打开两个表单:第一个是启动屏幕,在加载程序集时显示加载消息。第二个显示了一个窗体,上面有一些控件。我的问题是,我的类库是通过web小程序和JNI调用的。我的表单总是显示在浏览器页面后面

我知道我有几个不同的选择,但什么是确保我的表单在第一次打开时在前面打开的最好方法?我不想让他们永远保持领先。集中注意力和加强注意力似乎不起作用

public MyForm()
{
    InitializeComponent();
    this.Focus();
    this.BringToFront();
}

“激活”也不起作用…

您在正确的轨道上,但请将其放入表单显示的事件中:

public void MyForm_Shown(Object sender, EventArgs e)
{
    Activate();
}

这将确保当您要求表单向前移动时,表单实际上是可见的和构造的。

您走对了方向,但请将其放入表单显示的事件中:

public void MyForm_Shown(Object sender, EventArgs e)
{
    Activate();
}

这将确保当您要求表单向前移动时,表单实际上是可见的和构造的。

如果您在正确的时间调用它,激活应该可以工作。该时间不在构造函数中。你必须在那之后呼叫它。如果你在正确的时间呼叫它,激活应该可以工作。该时间不在构造函数中。你必须在那之后调用它。我把它放在我显示的事件中,事件被正确调用,但它仍然显示在我的浏览器后面。启动后还有什么可能会重新聚焦浏览器的事情吗?没有,在调用我的Java小程序后没有发生任何会重新聚焦浏览器的事情。我想我可能需要用Java做点什么,因为Java线程实际上正在运行我的代码?如果我在表单启动时关注Java控制台,它会按照我希望的方式工作…我必须在调用Activate之后包含BringToFront,现在它似乎工作得更稳定。我将此放在显示的事件中,事件被正确调用,但它仍然显示在我的浏览器后面。发布后还有什么可能会重新聚焦浏览器的事情吗?没有,在调用我的Java小程序后,没有发生任何会重新聚焦浏览器的事情。我想我可能需要用Java做点什么,因为Java线程实际上正在运行我的代码?如果我在表单启动时关注Java控制台,它会按照我希望的那样工作……在调用Activate之后,我必须包含BringToFront,现在它似乎工作得更加一致。