.NET第四章Windows窗體編程
2.創建MDI窗體應用
MDI就是多文檔界面,這是因為Excel電子表格用戶有時需要同時操作多份表格,MDI正好為這種操作提供了很大方便
要在主窗體上添加子窗體就要先把當前窗體設定為一個MDI窗體的容器(即把窗體的IsMdiContainer屬性設置為True)
在MDI父窗體實現增加一個子窗體
代碼: From childFrom = new From();
childFrom.Mdiparent = this;
childFrom.Text = "窗口" + childFromNumber++;
childFrom.Show();
8.
在具體應用中可能還要考慮把這些東西放置到Paint或erasebkground等事件中。
3.獲取應用程序路徑信息
桌面Windows程序開發,有時候需要讀取當前目錄下的文件,有時候需要在當前目錄下創建文檔,甚至有時候自升級也需要知道應用程序當前所在的目錄。
下面為幾種獲取文件路徑信息的方法的代碼:
4.回車跳轉控件焦點
客服每天需要快速錄入客戶反饋的信息,而如何讓他們節省跟多的時間,讓他們以最快的速度,最少的操作時間來完成信息的錄入成為很關鍵的因素,盡量避免用鼠標操作則是其關鍵流程之一。
下面為代碼示例:
這樣當我們按回車鍵時,就會自動跳轉到下一行。
5.窗體間傳遞復雜數據
在程序設計中,數據不僅要在同一個窗體中傳遞,還要在窗體間傳遞。有時需要在相互調用的窗體間傳遞比較復雜的數據,甚至需要子窗體修改父窗體的內容。
下面為幾種窗體間數據傳遞的方法:
(1)構造傳遞
(2)公有字段傳遞
1)在Form1中定義public字段
把private System.Windows.Forms.TextBox textBox1;改為public System.Windows.Forms.TextBox textBox1;。
或定義一個公有字段,這樣更符合面向對象的封裝性
2)From2增加一個公共屬性和構造函數,用於接收傳值。
3)在From1中創建並調用From2。
(3)委托與事件傳遞
功能:實現在子窗體中改變父窗體的內容,通過委托和事件來傳值給父窗體。
(1)定義一個結果對象,用來存放子窗體返回的結果。同時定義一個事件,可以讓一個子窗體修改父窗體的狀態。代碼如下:
這樣避免了在子窗體直接調用父窗體對象,有效降低了二者之間的依賴性級耦合性。父窗體改變後不需要重新編譯子窗體。兩個窗體都同時依賴於結果對象,更好的滿足了面對對象的封裝性和“依賴倒置”的原則。運行結果:
6.實現個性化窗體界面
在C#中通過少量的代碼實現不規則個性化窗體的制作。
(1)準備一張照片,對打算使其透明的地方使用白色背景(為了效果,最好是BMP位圖)
7.無標題窗體拖動的兩種方法
實現了個性化不規則窗體後整個窗體就是一個圖形,沒有了標題欄和關閉按鈕等是無法拖動和移動窗體的。而拖動這樣的窗體有兩種方法:
(1)通過鼠標事件實現
(2)調用API實現
.NET第四章Windows窗體編程