gpt4 book ai didi

c# - 线程中的 TopMost 表单?

转载 作者:太空狗 更新时间:2023-10-29 17:54:12 26 4
gpt4 key购买 nike

我正在使用以下代码在新线程中打开表单:

private void button1_Click(object sender, EventArgs e)
{

Thread thread = new Thread(ThreadProc);
thread.Start();
}


public void ThreadProc()
{

Form form = new Form();
form.TopMost = true;
form.ShowDialog();
}

但新创建的表单不是 TopMost,即使我将其设置为 true。

如何在线程 TopMost 中制作表单?

最佳答案

通常你不需要另一个线程,你可以像往常一样在模态或非模态模式下打开表单,如果表单需要做一个繁重的过程,那么你就在一个线程中完成这个过程。

针对您的问题,一种选择是从 Application.Run 中运行表单,如所述here .

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(ThreadProc);
thread.Start();
}


public void ThreadProc()
{
using (Form1 _form = new Form1())
{
_form.TopMost = true;
Application.Run(_form);
}
}
}

这将启动一个带有自己的消息泵的新线程,并将其保留为 TopMost 表单。

关于c# - 线程中的 TopMost 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com