第02篇:C#星夜拾遗之Windows窗体
盡管人們一直說高手都用編寫控制臺程序,盡管企業都在使用基于Web的應用程序,但我這里依然選擇了從Windows窗體入門。原因很簡單,我喜歡WinForm應用程序完美的可視化界面。
創建Windows窗體應用程序
根據上一篇中的WinForm版 Hello World的方法,創建一個名為SampleWinFormApp的Windows應用程序。這是最簡單、明了的創建方式。也有一些高人通過Nodepad創建,并通過命令行編譯執行的,這里不做說明,因為筆者沒有那樣做過。
在Form1的編輯窗口中,你可以拖拉工具箱中的項到窗口中,在公共控件欄目中的項為總常用的。你可以隨意拖幾個控件看看運行的效果,實踐是檢驗真理的唯一方法,也是走向編程大門的不二法門。
說說Program.cs
雙擊打開Program.cs文件,會看到這個文件里面就一個Main方法,學習過C語言的都應該知道,Main方法就是程序的入口,這也不例外。Main方法中有三行代碼,前兩行貌似是設置窗口樣式什么的,不做說明。第三行的用處在于設置運行時的窗口。這里是Form1,如果你的程序中有一個Form2,并且你希望程序運行后進入的界面是Form2,就可以將這里的Form1改為Form2即可。
另外,在Main方法中還可以加入一些系統初始化的內容,例如在這里初始化數據庫連接對象、檢驗程序是否注冊等。
說說Control類
Control類是每個控件和窗體的基類,它的核心功能是創建用戶所見的界面。
Control類實現向用戶顯示信息的類所需的最基本功能。它處理用戶通過鍵盤和指針設備所進行的輸入。它還處理消息路由和安全。雖然它并不實現繪制,但是它定義控件的邊界(其位置和大小)。它提供窗口句柄 (hWnd)……總之,這個Control類可謂功能強大。感興趣的朋友可以參考MSDN,這里不多贅言。
窗口之間的參數傳遞(示例下載:SampleWinFormApp.rar)
既然要傳遞參數,自然要新建第二個窗口,右鍵項目>添加>Windows窗體,如下圖:
在添加完成后,將Form1和Form2設計下圖:
相信你已經明白這個示例要做的事情了吧,沒錯,就是對Form1中的名稱進行重命名操作。操作流程為:點擊“重命名”按鈕,打開Form2,在Form2中顯示并可修改Form1中的名稱,修改完成后點擊“確定”按鈕,Form1中的名稱也會更新。
首先,為窗口中的按鈕添加單擊事件,可以通過雙擊按鈕本身,也可以在事件列表窗口中找到,并添加。這里的所有名稱都采用默認值。
然后就是編程了。這里給出Form1 和Form2 的全部代碼:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.textBox1.ReadOnly = true; // 設置TextBox1只讀
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this.textBox1.Text);
// 判斷是否點擊確定按鈕
if (form2.ShowDialog() == DialogResult.OK)
this.textBox1.Text = form2.GetNewName();
}
}
public partial class Form2 : Form
{
public Form2(string oldName)
{
InitializeComponent();
this.textBox1.Text = oldName;
}
public string GetNewName()
{
return this.textBox1.Text;
}
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
}
結束語
記得在剛學習C#窗體應用程序時,在參數傳遞這一部分浪費了很多時間,最后還是請教老師才搞明白的。其實這里是類的調用,沒有面向對象編程基礎的朋友可能不理解,在后面的章節中會進一步說明。
如果認為此文對您有幫助,別忘了支持一下哦!
本文轉自齊師傅博客園博客,原文鏈接:http://www.cnblogs.com/youring2/archive/2010/05/14/1735697.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的第02篇:C#星夜拾遗之Windows窗体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习Java的三十三个建议
- 下一篇: java函数式编程之接口Default方