C#创建多文档视图/多窗口(MDI)
2011-03-09 10:10
204 查看
在网上查了一些资料,发现介绍C#创建多文档视图的文章少,而且说得都比较杂,所以自己将这些天学习的结果整理出来,分享一下,希望对那些刚开始接触使用C#创建多文档的人有所帮助
1. 如何创建多文档界面?
通过C#创建一个Window窗体后,在窗体的属性那里,把其中的IsMdiContainer属性设置为True,就能看到窗体已经变成MDI形式了
2. 为什么在MDI窗体上的客户区无法响应鼠标消息?
这是因为将窗体设置为MDI窗体后,VS会自动给添加一个MdiClient的容器,所有在客户区的操作都是在这个容器上面的,要想能响应相
应的鼠标操作,就必须将响应鼠标事件的函数挂载到MdiClient容器上,可以按照下面的方式进行挂载
3. 如何在客户区创建窗体?
将子窗体的MdiParent属性设置为MDI窗体即可
4. 如何拦截鼠标双击标题栏的消息?
5. 如何处理点击标题栏上窗体最大化的消息?
重载窗体的OnResiz()函数
6. 如何让客户区中显示的窗体的位置在指定位置?
大家有什么问题,可以留言交流哈,还请高手指教
1. 如何创建多文档界面?
通过C#创建一个Window窗体后,在窗体的属性那里,把其中的IsMdiContainer属性设置为True,就能看到窗体已经变成MDI形式了
2. 为什么在MDI窗体上的客户区无法响应鼠标消息?
这是因为将窗体设置为MDI窗体后,VS会自动给添加一个MdiClient的容器,所有在客户区的操作都是在这个容器上面的,要想能响应相
应的鼠标操作,就必须将响应鼠标事件的函数挂载到MdiClient容器上,可以按照下面的方式进行挂载
for (int i = 0; i < this.Controls.Count; i++) { MdiClient ClientMdi = this.Controls[i] as MdiClient; if (ClientMdi != null) { ClientMdi.MouseMove += new System.Windows.Forms.MouseEventHandler(ClientMdi_MouseMove); ClientMdi.BackColor = Color.FromArgb(214, 213, 215); } } private void ClientMdi_MouseMove(object sender, MouseEventArgs e) { ............. }
3. 如何在客户区创建窗体?
将子窗体的MdiParent属性设置为MDI窗体即可
Form form1 = new Form(); Form form2 = new Form(); form2.MdiParent = this;(表示的就是form1) form2.show();
4. 如何拦截鼠标双击标题栏的消息?
protected override void WndProc(ref Message m) { base.WndProc(ref m); //可以处理标题栏上的鼠标双击事件 if (m.Msg == 0x00A3) { .......... } }
5. 如何处理点击标题栏上窗体最大化的消息?
重载窗体的OnResiz()函数
6. 如何让客户区中显示的窗体的位置在指定位置?
Form form1 = new form1(); //父窗体 Form form2 = new form2(); //子窗体 form2.StartPosition = FormStartPosition.Manual; form2.Bounds = new System.Drawing.Rectangle(left, top, width, height);
大家有什么问题,可以留言交流哈,还请高手指教
相关文章推荐
- MFC创建的MDI程序 新建一个子文档 主窗口标题自动会被追加上子文档的名字 取消此功能
- 通过按钮控件实现MDI新建子窗口(MFC自动生成的视图、文档、子框架共用)
- MDI程序系统框架单文档对应多视图 切换 创建实现过程。
- VC 2010 + MFC + MDI多文档视图框架:视图框架窗口激活的消息通知
- 创建一个新的视图窗口来显示已打开的文档中的内容
- MFC MDI项目如何一个文档显示多个不同视图类(比如文字和图表,各自拥有单独的框架窗口)
- C#_ACCP_Windows_创建多文档界面应用程序MDI
- C#程序通过模板自动创建Word文档
- 文档 视图 框架窗口间的关系和消息传送规律 作者:闻怡洋
- C#之二十一 创建MDI应用程序和组件开发
- Revit api c#里创建单例窗口
- MFC多文档程序启动时一个文档创建两个视图
- Android官方开发文档Training系列课程中文版:动画视图之创建自定义转场动画
- C#自学遇到的问题:Mdi窗口和子窗口菜单合并失败
- C#来创建和读取XML文档
- 用c#创建异型窗口
- 详解MFC框架窗口、文档和视图
- SDI和MDI获得文档和视图对象的方法
- 让VC++编写的MFC多文档程序不自动创建空白窗口
- C#创建显示多个表中你要显示的列-----视图的创建过程.....