C# InitializeComponent()方法案例詳解
在每一個窗體生成的時候,都會針對于當(dāng)前的窗體定義InitializeComponent()方法,該方法實(shí)際上是由系統(tǒng)生成的對于窗體界面的定義方法。
//位于.cs文件之中的InitializeComponent()方法 public Form011() { InitializeComponent(); }
在每一個Form文件建立后,都會同時產(chǎn)生程序代碼文件.CS文件,以及與之相匹配的.Designer.CS文件,業(yè)務(wù)邏輯以及事件方法等被編寫在.CS文件之中,而界面設(shè)計(jì)規(guī)則被封裝在.Designer.CS文件里,下面代碼為.Designer.CS文件的系統(tǒng)自動生成的腳本代碼。
namespace Example_FormTest { partial class frmStudent { /// /// 必需的設(shè)計(jì)器變量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的資源。 /// /// 如果應(yīng)釋放托管資源,為 true;否則為 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗體設(shè)計(jì)器生成的代碼 /// /// 設(shè)計(jì)器支持所需的方法 - 不要 /// 使用代碼編輯器修改此方法的內(nèi)容。 /// private void InitializeComponent() { this.SuspendLayout(); // // frmStudent // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 273); this.Name = “frmStudent”; this.Text = “學(xué)生信息”; this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.frmStudent_MouseClick); this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.frmStudent_KeyPress); this.ResumeLayout(false); } #endregion } }
在代碼之中,可以很容易發(fā)現(xiàn)InitializeComponent()方法和Dispose()方法,前者為界面設(shè)計(jì)的變現(xiàn)內(nèi)容,后者為表單釋放系統(tǒng)資源時候執(zhí)行編碼。
InitializeComponent()方法反映了窗體設(shè)計(jì)器中窗體和控件的屬性。通常不會在世界上個文件中修改代碼。如果更改InitializeComponent()方法中的相關(guān)屬性參數(shù),在窗體設(shè)計(jì)器界面上也會顯示出來。
我們發(fā)現(xiàn)建一個c#窗體項(xiàng)目,在Form1.cs和Form1.Designer.cs里分別有一個InitializeComponent()函數(shù)
Form1.Designer.cs 里的是定義 (函數(shù)名后面有大括號包含定義內(nèi)容)
Form1.cs 里的是調(diào)用 (函數(shù)名后面分號結(jié)尾)
partial 表示以下創(chuàng)建的是分布類代碼
也就是說 一個類的定義代碼 可以寫在兩個不同的頁面
Form1.cs和Form1.Designer.cs
注意:InitializeComponent()方法寫在前面和后面是有區(qū)別的。InitializeComponent()方法是用來初始化窗體組件的,在InitializeComponent之前,窗體的各個控件還沒有進(jìn)行初始化,比如說窗體上有一個TextBoxUserName,在InitializeComponent之前它還只是一個TextBox類型的變量而已,如果在InitializeComponent之前調(diào)用這個TextBox的屬性或方法,就會出錯。再比如說你拖上取一個TextBox,它放在Form的位置,TextBox的一些屬性。包括new 這個TextBox都放在那個函數(shù)里面處理的。
我們可以看一下Form.Designer.cs,在那里找到InitializeComponent方法,您會發(fā)現(xiàn)窗體對象的初始化都是在那里做的。
到此這篇關(guān)于C# InitializeComponent()方法案例詳解的文章就介紹到這了,更多相關(guān)C# InitializeComponent()方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)xml文件的讀取與寫入簡單實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)xml文件的讀取與寫入方法,涉及C#操作XML文件的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08c#計(jì)算某段代碼的執(zhí)行時間實(shí)例方法
在本篇文章里我們給大家整理了關(guān)于c#計(jì)算某段代碼的執(zhí)行時間的方法和經(jīng)驗(yàn),有興趣的朋友們學(xué)習(xí)下。2019-02-02WPF程序?qū)⒖丶尸F(xiàn)的內(nèi)容保存成圖像
這篇文章介紹了WPF程序?qū)⒖丶尸F(xiàn)的內(nèi)容保存成圖像的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06C#實(shí)現(xiàn)對文件進(jìn)行加密保護(hù)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)對文件進(jìn)行加密保護(hù)的功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12