gpt4 book ai didi

c# - FolderBrowserDialog 未显示在第二种形式上

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:49 24 4
gpt4 key购买 nike

好的,这就是我正在努力实现的主要本质以及它正在做的事情的症状。

我有一个主窗体。在此表单上,用户可以单击将打开一个新的单独表单的按钮。此窗体将有一个按钮,该按钮应该显示 FolderBrowserDialog。相反,它只是锁定 form2 并且从不显示任何内容。

这基本上是我处理表单等的代码。

这是在我做了一些无趣的事情之后加载的第一个表单。

FORM1.cs
//do stuff
//In a button.click method I do the following
Application.Run(new Form2(myParameters1, 2, 3));

这是从第一种形式调用的第二种形式

FORM2.cs
//do more stuff with the parameters on load
//user clicks on a button
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.RootFolder = Environment.SpecialFolder.Desktop;
fbd.Description = "This is the browser dialog box";

if(fbd.ShowDialog() == DialogResult.OK)
{
//do stuff
}
}

单击按钮后,对话框不显示,并且 form2 被锁定而无法执行任何操作。

我也尝试过改变

fbd.ShowDialog() 

fbd.ShowDialog(Form2.ActiveForm)

同样的结果。

任何帮助将不胜感激!如果您需要更多信息,请告诉我,我会尽我所能提供。

编辑

我忘了提(实际上完全忘了)打开第二个窗体的方法是一个单独的线程。

所以第一个表单启动一个线程,它打开第二个表单,它应该打开一个对话框,但它不是。现在我认为它与线程有关..

最佳答案

我已经解决了我的问题。结果是来自 Form1 的正在打开 Form2 的线程无法打开 DialogBoxes,因为它完全独立于 UI 线程。

我最终解决了使用该线程的问题,并完全消除了它,这解决了我的问题。对话框如我所愿打开。

谢谢大家的回复!他们确实帮助我找出了其他一些我未能正确完成的事情。

关于c# - FolderBrowserDialog 未显示在第二种形式上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086326/

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