问题标签 [non-modal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7596 浏览

c# - 您如何制作一个仅在 WinForms 中的父表单最顶层的非模态最顶层对话框?

为“关于”对话框考虑这一点,但我确信它适用于其他地方(比如查找框)

抱歉,如果这是一个骗局,但我找不到这个或如何阐明最后一部分,它只是在父母之上。您如何制作一个始终位于父表单之上,但非模态,但不覆盖其他应用程序的表单?

0 投票
2 回答
1803 浏览

delphi - 允许在顶部绘制主窗体的非模态子窗口 - Delphi

在 Delphi (2009 Pro) - 我有一个可以创建非模态子窗口的主窗体。我希望无论哪种形式都有焦点在上面绘制 - 即使它是具有焦点的主窗口。

0 投票
3 回答
4200 浏览

delphi - 如何防止快捷方式在 Delphi 中发生碰撞/交互?

我在主菜单上使用标准的剪切、复制、粘贴操作。他们有快捷方式Ctrl-XCtrl-CCtrl-V

当我打开一个模态表单(例如 FindFilesForm.ShowModal)时,所有的快捷方式都可以在表单中使用。

但是当我打开一个非模态表单(例如 FindFilesForm.Show)时,快捷方式不起作用。

如果 FindFilesForm 是活动表单,我认为这些操作应该有效。它的模态应该与它无关,还是我的想法错了?

无论如何,我怎样才能获得在非模态表单上工作的快捷方式?


在 Cary 的回应之后,我进一步研究了它。某些控件没有问题,例如 TMemo 或 TEdit。

但它适用于其他一些人。具体来说,它发生的地方包括:

  1. TComboBox 中的文本
  2. TFindDialog 中的文本
  3. TElTreeInplaceEdit 控件,LMD 的 ElPack 的一部分

我会看看是否还有其他人并将它们添加到列表中。

这些都是我程序中重要的非模态形式。

所以我仍然需要一个解决方案。


好的。我真的需要帮助。所以这成为我悬赏的第一个问题。

我与 Cary 的讨论是通过他的回答进行的,那里的评论更详细地描述了我的问题。

正如我在其中一个评论中提到的,这里似乎讨论了一个相关问题

我需要的是一个解决方案或解决方法,它允许Ctrl-X,Ctrl-CCtrl-V始终在非模态窗口中的 TComboBox 和 TFindDialog 中工作。如果这两个得到解决,我相信我的 TElTreeInplaceEdit 也能正常工作。

正如 Cary 所描述的,设置一个简单的测试程序只需要几分钟。希望有人能够解决这个问题。

只是要小心,似乎有一些东西可以让它有时工作,但有时不能工作。如果我可以更详细地隔离它,我会在这里报告。

感谢您为我提供的任何帮助。


Mghie 非常努力地寻找解决方案,他的 OnExecute 处理程序与他的 ActionListUpdate 处理程序相结合就可以解决问题。因此,为了他的努力,我给了他公认的解决方案和赏金积分。

但是他的动作列表更新处理程序并不简单,您需要在其中指定要处理的所有情况。假设还有您可能想要的Ctrl+A全选或撤消。Ctrl-Y一般程序会更好。

因此,如果您在搜索答案时确实遇到了这个问题,请先尝试我提供的添加 IsShortcut 处理程序的答案。它对我有用,应该处理所有情况,不需要 OnExecute 处理程序,所以要简单得多。Peter below 编写了该代码,Uwe Molzhan 获得了发现者费用。

感谢 Cary、mghie、Uwe 和 Peter 帮助我解决了这个问题。没有你是不可能做到的。(也许我可以,但我可能需要 6 个月的时间。)

0 投票
1 回答
9455 浏览

c# - 如何在非模态对话框上正确实现模态对话框?

在 WPF 应用程序中,我想实现以下似乎并不简单的行为:

用户从主窗口 ( Window1) 打开一个非模态窗口 ( Window2),该非模态窗口可能会显示一个模态对话框 ( Window3)。

问题是,每当显示模式对话框时,当用户关闭对话框时,主窗口就会在后台消失(假设有其他应用程序的窗口打开)。

Window.Owner我使用和Window.Show()/的方式有什么问题Window.ShowDialog()吗,是错误还是根本不支持?

以下简单的 WPF 应用程序演示了这种行为:

XAML Window1

XAML Window2

XAML Window3

更新:修复了代码中的复制和粘贴错误。这是 .NET 3.5 SP1,以防万一。

0 投票
3 回答
1104 浏览

forms - 如何防止主窗体在另一个非模态窗体上捕获 TMemo 中的击键?

我有一个从主窗体打开非模态窗体的应用程序。非模态表单上有一个 TMemo。主窗体菜单使用“空格”作为其加速字符之一。

当非模态表单打开并且备忘录具有焦点时,每次我尝试在非模态表单上的备忘录中输入空格时,“空格”快捷方式的主表单事件都会触发!

我尝试在另一个表单打开但没有骰子时将 MainForm.KeyPreview := false 变为。

有任何想法吗?

0 投票
1 回答
4236 浏览

android - 吐司与对话框:何时使用?

答案可能是主观的。答案可能是直觉。我想答案可以从传统的模态与非模态辩论中找到。

但总的来说,您通常如何决定选择哪一个?他们的用例是什么?

谢谢。

0 投票
5 回答
20630 浏览

c# - WinForms 编程 - 模态和非模态表单问题

我对 C#.NET 下的表单形式有疑问。假设我有主表单#0(见下图)。此表单代表主应用程序表单,用户可以在其中执行各种操作。但是,有时需要打开额外的非模态表单来执行额外的主要应用程序功能支持任务。假设这是图像中的表格#1。在这个 #1 表单上,可能会打开几个额外的模态表单(图像中的 #2 表单),最后,有一个进度对话框显示较长的操作进度和状态,这可能需要几个几分钟到几个小时。问题是主窗体#0 在您关闭所有模式窗体(图像中的#2)之前没有响应。我需要主窗体#0 在这种情况下可以运行。然而,如果您在表单#2 中打开一个非模态表单,您可以使用模态#2 表单和新创建的非模态表单进行操作。我需要主窗体#0 和窗体#1 及其所有子窗体之间的相同行为。可能吗?还是我做错了什么?也许有某种解决方法,我真的不想将所有 ShowDialog 调用更改为 Show ...

图片 http://img225.imageshack.us/img225/1075/modalnonmodalproblem.png

0 投票
4 回答
404 浏览

wpf - 模态和非模态行为的窗口

我想创建一个充当模式对话框的 WPF 窗口,同时促进在同一应用程序的某些其他窗口上的选定操作。这种行为的一个例子可以在 Adob​​e Photoshop 中看到,它提供了几个对话框,允许用户使用吸管工具从图像中进行选择,同时几乎禁用所有其他应用程序功能。

我猜测前进的方向是创建一个非模态的、始终在顶部的对话,并以编程方式禁用那些不适用于对话的应用程序功能。有没有一种简单的方法可以在 WPF 中实现这一点?或者也许我可以采用一种设计模式。

0 投票
4 回答
720 浏览

c# - 非模态“状态”形式

在一段可能需要几秒钟才能完成的 C# 代码的开头,我想显示一个非模态表单,其标签只是说:“请稍候......”

问题:在其余代码占用线程之前,WaitForm 没有完全显示。所以我只看到表格的框架。在德尔福(我的旧踩地)中,我会在 Show() 之后调用 Application.ProcessMessages 在 C# 中是否有等价物?有没有我可以在这种情况下使用的罐装“状态”表格?有没有更好的方法来解决这个问题?

提前致谢。大卫詹宁斯

0 投票
3 回答
606 浏览

iphone - 没有 NavigationController 的非模态视图

我有一个从 UITabBarController 启动项目构建的应用程序。第一个选项卡是包含选项卡栏的 main.xib 的一部分。我想从该选项卡视图顶部的底部向上滑动一个视图,该视图仅覆盖屏幕的一部分。我的理解是,如果您将顶视图设为非模态,您只能覆盖屏幕的一部分,但如果没有 NavigationController,我看不到这样做的方法。

我怎样才能做到这一点?