轉載:用Visual C#動態產生組件,請看!(二)
來源:互聯網
上載者:User
三. 程式設計中的關鍵步驟以及解決方案:
文中軟體主要功能是用通過表單上的二個按鈕來建立二個不同類型的WinForm組件--Button組件和TextBox組件,並在建立的同時為每一個組件的屬性賦值,給每一個建立的組件也建立了事件。
(1).如何在表單上建立Button組件:
其實用Visual C#建立一個組件是十分方便的,只用下列二行語句就可以完成了:
//建立一個新的Button組件
Button myButton = new Button ( ) ;
//在表單中顯示此按鈕
this.Controls.Add ( myButton ) ;
但此時建立的這個Button組件沒有任何屬性,並且也沒有任何事件,在本文中介紹的程式中建立的Button組件,不僅有屬性也有事件,下列語句就是本文程式建立Button組件原始碼:
//按鈕數量計算機在每次按鈕按動後加"1"
counter += 1 ;
//對要產生的按鈕的縱座標的相對位置是前一個產生按鈕的相對位置的縱座標加"3"
locY += this.btnAdd.Height + 3 ;
//建立一個新的Button組件
Button myButton = new Button ( ) ;
//設定他的名稱和Text屬性,以及產生的相對位置
myButton.Name = "Button " + counter ;
myButton.Text = "按鈕 " + counter ;
myButton.Location = new Point ( btnAdd.Location.X , locY ) ;
//為產生的新的Button組件設定事件,本文中為產生的按鈕設定了三個事件
myButton.MouseEnter += new System.EventHandler ( this.btn_MouseEnter ) ;
myButton.MouseLeave += new System.EventHandler ( this.btn_MouseLeave ) ;
myButton.Click += new System.EventHandler ( this.btn_Click ) ;
//在表單中顯示此按鈕
this.Controls.Add ( myButton ) ;
程式不僅為每一個組件的屬性都賦值,而且為每一個組件都建立了三個事件。細心的讀者可能已經注意到,程式為每一個組件建立的事件的名稱都是一樣的。這樣就有一個問題,如何在這一樣的事件中,識別到底是哪個Button組件觸發了事件。