《c 创建多文档视图多窗口1》由会员分享,可在线阅读,更多相关《c 创建多文档视图多窗口1(3页珍藏版)》请在金锄头文库上搜索。
1、在网上查了一些资料,发现介绍 C#创建多文档视图的文章少,而且说得都比较杂,所以自己将这些天学习的结果整理出来,分享一下,希望对那些刚开始接触使用 C#创建多文档的人有所帮助1. 如何创建多文档界面?通过 C#创建一个 Window 窗体后,在窗体的属性那里,把其中的 IsMdiContainer 属性设置为 True,就能看到窗体已经变成 MDI 形式了2. 为什么在 MDI 窗体上的客户区无法响应鼠标消息?这是因为将窗体设置为 MDI 窗体后,VS 会自动给添加一个 MdiClient 的容器,所有在客户区的操作都是在这个容器上面的,要想能响应相应的鼠标操作,就必须将响应鼠标事件的函数挂载
2、到 MdiClient 容器上,可以按照下面的方式进行挂载view plaincopy to clipboardprint?1.for (int i = 0; i this.Controls.Count; i+)2.3.MdiClient ClientMdi = this.Controlsi as MdiClient;4.if (ClientMdi != null)5.6.ClientMdi.MouseMove += new System.Windows.Forms.MouseEventHandler(ClientMdi_MouseMove);7.ClientMdi.BackColor = C
3、olor.FromArgb(214, 213, 215);8.9.10.11.12.13.private void ClientMdi_MouseMove(object sender, MouseEventArgs e)14.15.16.17.3. 如何在客户区创建窗体?将子窗体的 MdiParent 属性设置为 MDI 窗体即可view plaincopy to clipboardprint?1.Formform1 = new Form();2.3.Formform2 = new Form();4.5.6.7.form2.MdiParent = this;(表示的就是 form1)8.9.f
4、orm2.show();4. 如何拦截鼠标双击标题栏的消息?view plaincopy to clipboardprint?1.protected override void WndProc(ref Message m)2.3.base.WndProc(ref m);4.5./可以处理标题栏上的鼠标双击事件6.if (m.Msg = 0x00A3)7.8.9.10.11.12.13.14.15.5. 如何处理点击标题栏上窗体最大化的消息?重载窗体的 OnResiz()函数6. 如何让客户区中显示的窗体的位置在指定位置?view plaincopy to clipboardprint?1.Formform1 = new form1();/父窗体2.3.Formform2 = new form2();/子窗体4.5.6.7.form2.StartPosition = FormStartPosition.Manual;8.9.form2.Bounds = new System.Drawing.Rectangle(left, top, width, height);大家有什么问题,可以留言交流哈,还请高手指教