gpt4 book ai didi

c# - 如何在不同的线程上更改窗体的窗口状态?

转载 作者:行者123 更新时间:2023-12-01 08:41:17 25 4
gpt4 key购买 nike

有谁知道如何从另一个线程更改窗体的窗口状态?这是我正在使用的代码:

    private void button4_Click(object sender, EventArgs e)
{
string pathe = label1.Text;
string name = Path.GetFileName(pathe);
pathe = pathe.Replace(name, "");
string runpath = label2.Text;
Process process;
process = new Process();

process.EnableRaisingEvents = true;
process.Exited += new System.EventHandler(process_Exited);

process.StartInfo.FileName = @runpath;
process.StartInfo.WorkingDirectory = @pathe;
process.Start();
WindowState = FormWindowState.Minimized;
}
private void process_Exited(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}

这意味着运行一个程序并最小化,然后在程序关闭后返回正常状态。虽然我收到此错误“跨线程操作无效:控件'Form1'从创建它的线程以外的线程访问。”知道如何让它工作吗?

最佳答案

这将在 .NET 3.5 中工作:

Invoke(new Action(() => { this.WindowState = FormWindowState.Normal; }));

或 2.0:

Invoke(new MethodInvoker(delegate { this.WindowState = FormWindowState.Normal; }));

关于c# - 如何在不同的线程上更改窗体的窗口状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2601166/

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