小编Hyp*_*ion的帖子

WPF - 强制ShowDialog返回

我如何强制ShowDialog从后台线程返回?

我有一个构建在C++/CLR框架之上的WPF应用程序,它正在监听框架发送的消息.一个特定的消息非常重要,我需要关闭所有当前窗口.但是,如果模态Dialog(由ShowDialog我的主窗口创建)处于活动状态并等待用户输入,则窗口将不会关闭,因为它正在等待ShowDialog返回.如何强制模态Dialog关闭和解除代码执行?

我尝试设置DialogResult或调用Close,但似乎不起作用.

编辑:Dialog由我的主窗口创建,它需要一个返回值,如下所示:(在单击事件处理程序中MainWindow):

Window modalDialog = new Window();
bool ret = (bool)modalDialog.ShowDialog();
if (ret == true)
{
 // do stuff
}
else
{
 // do some other stuff
}
Run Code Online (Sandbox Code Playgroud)

当框架发送消息(进入与UI线程不同的线程)时,我打电话MainWindow.Close().此时模态对话框将关闭,但检查Dialog(after ShowDialog)返回值的代码仍在堆栈中.不知怎的,这迫使主窗口不会消失.

.net c# wpf modal-dialog showdialog

6
推荐指数
1
解决办法
4188
查看次数

字体大时,DataGridView 复选框不显示

我有一个 DataGridView,它包含两个文本列和一个复选框列。如果用户在 Vista 或 Windows 7 中增大字体大小,复选框将不再可见。我将 AutoSizeRowsMo​​de 设置为 AllCells 并在最初修复它。但是网格中的行是可编辑的,如果用户单击一行进行编辑,复选框将再次消失,直到取消选中该行。

我无法在网上找到有关此问题的任何资源,因此我很惊讶以前没有人遇到过这种情况。行高设置为 21,因此超过复选框所需的 17 大小...

这是一个 Outlook 插件 DLL,所以我不能使用 SetProcessDPIAware()。

c# datagridview winforms

4
推荐指数
1
解决办法
3126
查看次数

标签 统计

c# ×2

.net ×1

datagridview ×1

modal-dialog ×1

showdialog ×1

winforms ×1

wpf ×1