//1.MDI<br />this.IsMdiContainer = true;<br />//排列表單<br />//this.LayoutMdi(MdiLayout.ArrangeIcons);<br />//this.LayoutMdi(MdiLayout.Cascade);<br />this.LayoutMdi(MdiLayout.TileHorizontal);//縱向排列<br />//建立子表單<br />void NewToolStripMenuItemClick(object sender, System.EventArgs e)<br />{<br />mdiChildCount++;<br />MDIChild mdiChild=new MDIChild();<br />mdiChild.MdiParent=this;<br />mdiChild.Show();<br />mdiChild.Text="doc"+mdiChildCount.ToString();//先顯示後設定屬性?<br />}<br />//2.方法<br />//01.SuspendLayout 和 ResumeLayout<br />this.SuspendLayout();<br />//改變屬性<br />this.ResumeLayout(this);<br />this.PerformLayout();<br />/******<br />通常我們在設定子控制項的一些與外觀、布局有關的屬性時,比如Size、Location、Anchor<br />或 Dock等,會激發子控制項的Layout事件,並可能會引起視窗重繪,當子控制項較多時,<br />如果頻繁設定上述屬性(例如在表單的初始化代碼中),多個子控制項的 Layout事件會引起<br />視窗重繪效率問題,比如閃爍。使用SuspendLayout(),其後的代碼中將會把子控制項的Layout事件<br />暫時掛起,只是把相應屬性的值設定為新值,並不激發Layout事件,待調用ResumeLayout()後,<br />再一起使子控制項的Layout事件生效。<br />******/<br />//3.找到啟用的表單及表單內啟用的控制項<br />Form activeChild=this.ActiveMdiChild;//取得被啟用的子表單<br />if(activeChild!=null)//需要判空<br />{<br />RichTextBox aBox=(RichTextBox)activeChild.ActiveControl;//取得表單裡處於焦點的控制項<br />if(aBox!=null)<br />{<br />Font fontOfSelectedText=aBox.SelectionFont;//取得編輯區字型<br />FontStyle fs;<br />fs=FontStyle.Italic;//斜體樣式<br />Font FontToApply=new Font(fontOfSelectedText,fs);//建立帶樣式的字型<br />aBox.SelectionFont=FontToApply;//設定字型,設定之後,再輸入的字型改變<br />}<br />}<br />//4.模式和非模式表單,表單傳回值<br />void BtnModelResultClick(object sender, System.EventArgs e)<br />{<br />this.DialogResult=DialogResult.OK;<br />this.Dispose();<br />}<br />void BtnModelFormClick(object sender, System.EventArgs e)<br />{<br />//可以定義成類的一個變數,然後if(modelForm==null)判斷<br />ModelForm modelForm=new ModelForm();<br />//modelForm.ShowDialog();<br />modelForm.ShowDialog(this);<br />this.Text=modelForm.DialogResult.ToString();//取得傳回值:"OK"..<br />}