我试图为 WinForm 调用 ShowDialog(创建表单的实际代码位于 .linq 脚本中)并且一切正常,但对话框未在 LINQPad 应用程序中显示为中心。当多个显示器同时运行并且我盯着 LINQPad,运行我的脚本并在不同的显示器上弹出对话框时,这是有问题的。我假设将 IWin32Window 传递给 ShowDialog 将显示以所有者为中心的对话框,但我不知道如何从 LINQPad 获取 IWin32Window...这可能吗?
作为对@Albahari 答案的一个小小的贡献:
var dialog = new FolderBrowserDialog();
var handle = Process.GetProcessById(Util.HostProcessID).MainWindowHandle;
var win32Window = new NativeWindow();
win32Window.AssignHandle(handle);
if (dialog.ShowDialog(win32Window) != DialogResult.OK)
{
"Aborted".Dump();
return;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
505 次 |
| 最近记录: |