Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在我的MDI应用程序中防止窗口混乱的最佳方法_C#_.net_Winforms_Mdi - Fatal编程技术网

C# 在我的MDI应用程序中防止窗口混乱的最佳方法

C# 在我的MDI应用程序中防止窗口混乱的最佳方法,c#,.net,winforms,mdi,C#,.net,Winforms,Mdi,我目前正在.NET4.0中设计一个MDI应用程序(自定义CRM),我开始不喜欢整个界面,因为没有真正的方法来跟踪哪些窗口打开或关闭,这可能会导致非常混乱的界面 避免这种情况的最佳方法是什么? -我应该实现一个任务栏来跟踪每个打开的mdi子级吗? -我是否应该使用对话框来防止多任务? -有没有办法改变mdi容器上最小化窗口的大小(为什么它们这么小,你甚至无法通过这种方式阅读完整的表单标题…) 很抱歉有这么多问题,请提前感谢。MDI有它的用途,但正如您所发现的,它很容易导致界面混乱,难以使用。当前流

我目前正在.NET4.0中设计一个MDI应用程序(自定义CRM),我开始不喜欢整个界面,因为没有真正的方法来跟踪哪些窗口打开或关闭,这可能会导致非常混乱的界面

避免这种情况的最佳方法是什么? -我应该实现一个任务栏来跟踪每个打开的mdi子级吗? -我是否应该使用对话框来防止多任务? -有没有办法改变mdi容器上最小化窗口的大小(为什么它们这么小,你甚至无法通过这种方式阅读完整的表单标题…)


很抱歉有这么多问题,请提前感谢。

MDI有它的用途,但正如您所发现的,它很容易导致界面混乱,难以使用。当前流行的处理方法是添加一个选项卡控件(如在任何web浏览器或大多数文本编辑器/IDE中),以允许在打开的视图之间切换。我想这离任务栏很近

其他选项包括Outlook栏(Outlook左侧的大视图选择器)之类的控件,也可能只是包含当前打开视图的简单列表框


P>可选地,考虑你真的希望多个窗口可用,以及它们是否都是“工具窗口”。如果是这样的话,也许可以考虑为这些工具窗口使用停靠窗口,为应用程序的其余部分使用单个文档界面。一切都取决于你到底在做什么

MDI窗口管理已经内置了通过菜单跟踪打开的窗口的功能。ToolStripMenu有一个MdiWindowListItem,您可以将其设置为包含打开窗口列表的菜单项的引用。如果菜单附加到MDI父窗口,子窗口将自动填充菜单项

MDI的目标之一是允许多任务处理。如果这不是你想要的,使用不同的设计


至于更改最小化窗口的大小,显然不可能使用标准的windows界面。请在此处查看更多信息:。但是,您可以删除标准的最小化按钮,添加自己的按钮,然后在正常状态下对windows执行所需操作。

是否需要使用MDI?就我个人而言,我更喜欢真正的windows,这样你就有了一个可以工作的任务栏(windows内置),你可以不受限制地安排它们(MDI可能会导致多显示器配置出现问题)。如果你看看今天的应用程序,一般来说,它们不是MDI(例如,Office不再是MDI)。浏览器是例外,他们使用的是MDI,而不是远离,但他们使用的是选项卡,一次只能看到一个子项,并且只能最大化。保持简单:)