禁用对话框闪烁 C#
Disabling Dialog Flashing C#
我有一个填充的 ListView 对话框。如果用户单击 ListView 中的选项,则 ListView 上方会显示一个新对话框。
我的问题是,当我点击新的最顶层对话框(到它后面的 ListView 上)时,新对话框的边框 flash/blink 好几次。任务栏上的图标也会闪烁。我想禁用闪烁,但找不到要更改的 属性。
为了显示我的对话框,我使用了以下代码:
if (detail == null)
detail = new Details(opt, val, user, desc, m_l);
else
detail = null;
detail.ShowDialog();
这是预期行为,因为新对话框是 modal。它提请注意需要做一些事情的事实。
如果您需要制作非模态表单,而不是使用 ShowDialog()
,只需使用 Show()
.
我觉得你每次都在创建模态windows。在您关闭新的最顶层 window.
之前,您无法恢复之前的对话
查看此 wikipedia article 以获取有关模式对话框的信息。
我建议你看看你 creating/showing 你的 windows 怎么样。
在 WPF 中,您通过 Show()
或 ShowDialog()
显示 windows,但是,我不知道您使用的是哪种类型的 ListView
编辑:
根据您的评论,您需要模式对话框。我能想到的唯一方法甚至试图删除闪烁是进入 WINAPI。这似乎不是 .NET 的工作。
我想提出几点建议:
- 查看显示每个 window 的选项。 See this MSDN page
- 查看每个样式的选项 window。 See this MSDN page
- 重新考虑您的设计。我知道这可能需要很多工作,但是 windows 这么多层对大多数用户来说有点没有吸引力。最终,我相信此选项将使您的应用程序成为最佳。
感谢大家的回答和指导。我找到了解决问题的最佳方法。
我正在使用一个事件 ItemActivated。单击 ListView 上突出显示的项目时调用此事件。当用户双击已经选择的项目时,这就成了一个问题。这会导致新对话框显示,但也会闪烁几次。
通过使用 DoubleClick 事件,单击选定对象不会执行任何操作。双击选定或未选定的项目将打开没有闪烁的对话框。如果您尝试从对话框中单击,闪烁仍然会出现,但这不是什么大问题。
我有一个填充的 ListView 对话框。如果用户单击 ListView 中的选项,则 ListView 上方会显示一个新对话框。
我的问题是,当我点击新的最顶层对话框(到它后面的 ListView 上)时,新对话框的边框 flash/blink 好几次。任务栏上的图标也会闪烁。我想禁用闪烁,但找不到要更改的 属性。
为了显示我的对话框,我使用了以下代码:
if (detail == null)
detail = new Details(opt, val, user, desc, m_l);
else
detail = null;
detail.ShowDialog();
这是预期行为,因为新对话框是 modal。它提请注意需要做一些事情的事实。
如果您需要制作非模态表单,而不是使用 ShowDialog()
,只需使用 Show()
.
我觉得你每次都在创建模态windows。在您关闭新的最顶层 window.
之前,您无法恢复之前的对话查看此 wikipedia article 以获取有关模式对话框的信息。
我建议你看看你 creating/showing 你的 windows 怎么样。
在 WPF 中,您通过 Show()
或 ShowDialog()
显示 windows,但是,我不知道您使用的是哪种类型的 ListView
编辑: 根据您的评论,您需要模式对话框。我能想到的唯一方法甚至试图删除闪烁是进入 WINAPI。这似乎不是 .NET 的工作。
我想提出几点建议:
- 查看显示每个 window 的选项。 See this MSDN page
- 查看每个样式的选项 window。 See this MSDN page
- 重新考虑您的设计。我知道这可能需要很多工作,但是 windows 这么多层对大多数用户来说有点没有吸引力。最终,我相信此选项将使您的应用程序成为最佳。
感谢大家的回答和指导。我找到了解决问题的最佳方法。
我正在使用一个事件 ItemActivated。单击 ListView 上突出显示的项目时调用此事件。当用户双击已经选择的项目时,这就成了一个问题。这会导致新对话框显示,但也会闪烁几次。
通过使用 DoubleClick 事件,单击选定对象不会执行任何操作。双击选定或未选定的项目将打开没有闪烁的对话框。如果您尝试从对话框中单击,闪烁仍然会出现,但这不是什么大问题。