问题标签 [mdi]
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.
delphi - Delphi MDI Application 和 MDI Children 的标题栏
我有一个用 Delphi 2006 编写的 MDI 应用程序,它使用默认主题运行 XP。
有没有办法控制 MDI Children 的外观以避免每个窗口上的 XP 风格的大标题栏?
我已经尝试将 to 设置为,BorderStyle
但它们仍然呈现为普通表单。MDIChildren
bsSizeToolWin
c# - 使用 MDILayout 的 Windows 窗体排序
我在使用 C# 和 Windows MDI Form 应用程序时遇到了一个非常具体的问题。我想向用户显示两个(或更多)图像,一个“左”和一个“右”图像。图像的名称对用户隐藏,然后用户选择他们喜欢的图像(这是涉及医学图像质量的研究的一部分,因此用户必须对可能在图像中显示的相关捕获参数视而不见。图像名称)。代替显示实际名称,向用户显示替代名称,例如“图像 0”和“图像 1”(等)。
每当我使用标准MDILayout.TileVertical
orTileHorizontal
时,图像都会以相反的顺序加载。例如,如果我有图像 0 和图像 1,则会显示它们
图片 1 图片 0
三个或更多图像将类似于
2 1 0
或者
3 2
1 0
等等。问题是,我的用户对这种从右到左感到困惑,如果我有另一个对话框询问他们哪个图像更好(或对显示的图像进行评分),他们总是将屏幕上图像的顺序与顺序混淆对话框中的图像。也就是说,如果我只是在评级对话框中订购图像 0 1 2 3 等,他们假设显示的图像 3 是 MDI 父窗口中的图像 0,图像 2 是图像 1 等——它们从左到右阅读,并且图像从右到左显示。如果我重新排序评级对话框中的选项卡以反映屏幕上的顺序,那只会进一步混淆它们(“为什么图像 3 在图像 2 之前?”)并且结果以错误的顺序出现,并且通常无法使用。
那么,如何使用MDILayout
in强制显示窗口的顺序C#
?我必须手动完成,还是可以将一些开关发送给布局管理器?
谢谢!
.net-2.0 - MessageBox 在最大化的 MDI 形式中失去焦点
我有一个 MDI 应用程序(用 .NET 2.0 编写),它允许用户打开多个子窗体。子窗体总是在 MDI 父窗体中最大化。当 MDI 父级最大化并且我尝试执行 MessageBox.Show 时,MessageBox 不显示。如果我执行 alt-tab(或者甚至只是按 alt),MessageBox 会弹出到前面。
有什么想法可以让那个傻瓜一开始就出现吗?
这只是在最大化 MDI 父级时出现的问题......
.net - MDIParent 平铺儿童
有什么方法可以轻松地平铺 mdi 父级的所有表单子级?我正在寻找 Windows 提供的大部分功能,即 tile cascade。有谁知道一个简单的方法?
vb.net - VB.Net MessageBox.Show() 将我的表单移到后面
我有一个 MDI 应用程序。当我使用 MessageBox.Show() 显示消息框时,当我关闭消息框时,整个应用程序会消失在所有打开的窗口后面。
代码没有做任何特别的事情。事实上,这是从 MDI 子窗体中调用消息框的行:
Me.BusinessUnitTypeName() 是一个只读属性 getter,它根据成员变量的值返回一个字符串。此属性没有副作用。
有任何想法吗?
delphi - 在 Delphi Mdi 应用程序的父窗口中使用 KeyDown 事件
如何让 KeyDown 事件在 Delphi (2007) MDI 应用程序父窗口中工作,即使子窗口具有焦点?
我想实现一个在 MDI 应用程序中显示帮助屏幕的快捷键 (F1),我已将 KeyDown 过程添加到 MDI 父窗口并在父窗口和子窗口中启用了 KeyPreview,但它不能作为预期的。
如果我在父母 KeyDown 代码中设置一个断点,我可以看到它永远不会执行,即使它没有打开子窗口。但是,如果我将相同的代码添加到子窗口中,它就可以正常工作。
有没有办法让父窗口接收按键,即使子窗口有焦点,因为将代码添加到 25+ 窗体接缝有点浪费?
windows - Windows 窗体,从父窗体获取属性
我有点问题。我在父表单中有一个数据表。我打开一个对话框表单,它获取数据表属性并创建一个复选框列表。这将用于导出这些列。但是当我运行应用程序时, parentform 属性为空。我已经尝试在父窗体和对话框窗体中设置它(我假设如果调用 ShowDialog() 会自动完成)。
有人可以看看我哪里出错了吗?从对话框中:
从父窗体:
delphi - 如何发现我的 delphi 应用程序当前是否有模式窗口?
我在我的 Delphi MDI 应用程序中运行了一个计时器,如果后台发生变化,我想用它来弹出一条消息。但是我不希望当应用程序在前台有一个模式对话框时弹出该消息,因为用户对此无能为力。
所以我想知道的是如何检查我的应用程序中是否存在模式对话框?
c# - 如何防止 ToolStrip 停靠在另一个 ToolStripContainer 中?
我有一个 MDI 应用程序,它允许我打开不同类型的子窗口。我可以打开相同类型的子窗口的多个(但不同的)实例。(示例:我可以打开 3 个子窗口类型 A 的实例和 2 个子窗口类型 B 的实例。所有 5 个窗口都是不同的实体,除非用户明确将相同的数据拖到多个窗口上,否则它们不会共享数据。)每个子窗口有一个带有一个或多个 ToolStrips 的 ToolStripContainer。我该如何预防:
- 用户从 A 类型的子窗口中将 ToolStrip 拖到 B 类型的子窗口中的 ToolStripContainer 中?
- 用户是否将 ToolStrip 从子窗口 A 的一个实例拖到同一类型窗口的另一个实例中的 ToolStripContainer?
我试图阻止用户将 ToolStrip 从 A 类型的实例 1 拖动到 A 类型的实例 2,在实例 2 上选择一些东西,然后单击工具栏上的一个按钮,只是为了让其他一些窗口发生奇怪的事情. 同样,将 ToolStrip 从 A 类型的窗口拖动到 B 类型的窗口是没有意义的——这些操作不适用于该类型,但对用户来说,一切都很好,因为我让他们这样做阻力。
是像为 ControlAdded 事件添加我自己的处理程序一样简单,还是有更好的方法来做到这一点?我在 .NET 3.0 中使用 WinForms。
编辑:重现的步骤
- 创建一个新的 Windows 应用程序项目。
- 添加一个新的用户控件。为控件提供一个 ToolStripContainer,其中包含一个带有单个按钮的 ToolStrip。
- 重复第 2 步,为您提供一个 UserControl2 类。
- 编译解决方案,以便 UserControl1 和 UserControl2 显示在您的工具箱中。
- 将 UserControl1 和 UserControl2 拖到窗体上。设置边界,以便您知道边界在哪里。
- 运行应用程序。
- 现在可以将 ToolStrip 从 UserControl1 中的容器拖放到 UserControl2 中的容器中(在 UC1 中留下零个 ToolStrip,在 UC2 中留下两个 ToolStrip。)
- 现在假设您只能访问 UserControl1 中的代码。如何防止用户将 ToolStrip 拖出 ToolStripContainer 的实例?