[Windows应用程序]怎样建立winForm多文档窗口MDI
2010-07-28 02:59
363 查看
1、在VS2008中新建一个项目,将缺省页面改名为frmMain,把它的IsMdiContainer属性改为True(这样页面中间就不能放置普通的控件了)。
2、在工具箱中双击ToolStrip,给这个页面增加一个菜单条。点击菜单条上的图标让你选择控件类型(一般选择按钮)。选完一个再选一个
3、在项目中添加两个页面,缺省名称为Form1、Form2。
4、在主页面中,双击菜单条上第一个按钮,在其事件里写如下几行:
5、同理单击第二个按钮,写入相同的程序(注意把Form1改成Form2)。
6、在后再加一个新的方法
7、运行一下看看:
[后记]我在这里遇到了几个问题:
1、子窗口默认打开时最大化,刚打开时页面上部有一部分在父窗口的菜单条下显示不出来(好像位置往上串了),点击别的窗口,再点击原来的那个就好了。我说明白了吗?就是第一次点击时屏幕有跳动,显示内容不完全,子窗口顶部没露出来,多点击次就好了。也许在页面Load事件里,数据运算量太大了,如果没有数据连接,效果会好很多。
2、在一个子页面修改数据,另一个页面应该也有更新,怎么办好呢?
希望有知道的朋友给我一些提示。
2、在工具箱中双击ToolStrip,给这个页面增加一个菜单条。点击菜单条上的图标让你选择控件类型(一般选择按钮)。选完一个再选一个
3、在项目中添加两个页面,缺省名称为Form1、Form2。
4、在主页面中,双击菜单条上第一个按钮,在其事件里写如下几行:
string childrenFormText = "Form1"; if (!ShowChildrenForm(childrenFormText)) { Form1 frm = new Form1(); frm.MdiParent = this; frm.Show(); }
5、同理单击第二个按钮,写入相同的程序(注意把Form1改成Form2)。
6、在后再加一个新的方法
//check children form exist or not. if exists, active //maybe we can check the form type, instead of text private bool ShowChildrenForm(string childrenFormText) { int i; for (i = 0; i < this.MdiChildren.Length; i++) { //MessageBox.Show(this.MdiChildren[i].Text); if (this.MdiChildren[i].Text == childrenFormText) { this.MdiChildren[i].Activate(); this.MdiChildren[i].WindowState = FormWindowState.Maximized; return true; } //else { // this.MdiChildren[i].Hide(); //} } return false; }
7、运行一下看看:
[后记]我在这里遇到了几个问题:
1、子窗口默认打开时最大化,刚打开时页面上部有一部分在父窗口的菜单条下显示不出来(好像位置往上串了),点击别的窗口,再点击原来的那个就好了。我说明白了吗?就是第一次点击时屏幕有跳动,显示内容不完全,子窗口顶部没露出来,多点击次就好了。也许在页面Load事件里,数据运算量太大了,如果没有数据连接,效果会好很多。
2、在一个子页面修改数据,另一个页面应该也有更新,怎么办好呢?
希望有知道的朋友给我一些提示。
相关文章推荐
- 如何禁用窗口关闭按钮在一个 MFC 多文档界面 (MDI) 应用程序
- 如何禁用窗口关闭按钮在一个 MFC 多文档界面 (MDI) 应用程序
- C#_ACCP_Windows_创建多文档界面应用程序MDI
- QtCreator 应用程序主窗口---多文档QMdiArea(MDI多文档界面的区域),QDockWidget(Dock部件),QStatusBar(状态栏)
- MFC应用程序中处理消息的顺序(窗口建立与销毁)
- Windows编程基础 第三章 基本窗口创建过程 MDI窗口创建
- 从Windows消息的角度看窗口应用程序运行过程
- 建立Office2007风格的MFC单文档应用程序
- 从Windows消息的角度看窗口应用程序的运行过程
- 应用程序各种标题的改变方法 vc多文档应用程序窗口初始化
- C#写的64位windows窗口应用程序打包安装后提示“未能加载文件或程序集‘System.Data.SQLite’”解决方法
- 改变单文档应用程序窗口的大小和位置
- 从Windows消息的角度看窗口应用程序的运行过程
- Winform应用程序实现通用消息窗口
- windows启动时自动打开的应用程序窗口默认设置为全屏?
- 怎样把PDF文件在WinForm窗口中显示出来
- [Windows应用程序]怎样连接数据库
- 在MFC单文档程序中,怎样由子窗口控件调用父窗口中的控件
- MFC建立一个文档视图的工程,然后在窗口上显示数据
- 屏蔽控制台应用程序的窗口#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")