【发布时间】:2020-05-21 10:16:56
【问题描述】:
第一逻辑
FolderBrowserDialog dialog = new FolderBrowserDialog();
DialogResult ret = STAShowDialog(dialog);
第二个逻辑
private DialogResult STAShowDialog(FolderBrowserDialog dialog)
{
DialogState state = new DialogState();
state.dialog = dialog;
System.Threading.Thread FolderBrowserThread = new System.Threading.Thread(state.ThreadProcShowDialog);
FolderBrowserThread.SetApartmentState(System.Threading.ApartmentState.STA);
FolderBrowserThread.Start();
FolderBrowserThread.Join();
return state.result;
}
最后的逻辑
class DialogState
{
public DialogResult result;
public FolderBrowserDialog dialog;
public void ThreadProcShowDialog()
{
dialog.Description = "Select the folder where you want to save the WAV files.";
result = dialog.ShowDialog(new Form(){TopMost = true,TopLevel = true} );
}
}
FolderBrowserDialog Top 最不工作。 屏幕的层是最低层。
没有错误!
我想在顶层被调用
【问题讨论】:
-
@Guy 我该怎么办?
-
@Guy 没有错误,但 TopMost 不能
-
您发布的代码绝对不足以重现您的问题。必须有更多。你怎么称呼
ThreadProcShowDialog?在那之前你是做什么的,描述一下你的背景 -
@MongZhu sorce add
-
仍然无法重现。当我尝试你的代码时,它显示得最多。