C#基礎視頻教程3.1 常見控件類型和使用方法
可以從左側的工具箱中找到常見的控件(你要在Form1這種窗體上)
?
為了方便你也可以把工具箱整個拖過去,這樣從上到下控件都給你排好了
?
對於按鈕來說,最常見的就是他的背景顏色,文字,字體,還有是否啟用(我們輸入按鈕名稱+點就可以訪問這個控件的所有屬性,事件和方法,註意屬性是一把扳手的標識,事件是一個閃電,方法是一個小方塊)
?
詳細解釋一下屬性:我們先判斷這個按鈕是否已經Enabled(這裏判斷的就是按鈕2的屬性,屬性就好比一個人有他的屬性,身高,年齡,體重,姓名,性別,有一些屬性是只讀的,有一些是可讀寫的,對於控件按鈕來說,他的屬性也就是所有圖標為扳手的東西,他的Enabled屬性可以讀也可以改,我們還可以讀寫他的背景色,文字,字體,大小,位置等等屬性)
?
如果我選中了整個Form也可以訪問到這個控件的所有屬性(如果不是可視化的元素,而是自定義的類,那麽就只能類或者類的實例+點看到他的所有屬性了)
?
詳細解釋一下事件:事件是用來綁定方法的,也就是說按鈕這個控件有很多事件,鼠標移入,鼠標移出,鼠標按下,鼠標彈起(如同人也可以有很多事件,比如睡著了,醒了,哭了,笑了,這些都是程序員自己定義的,我們後面自己封裝控件和類的時候也可以自己定義事件),我們可以定義成鼠標按下和彈起的時候整個窗體改變背景色(註意寫法,只要+=然後Tab會自動補全。可以想象Person張三.Smile事件 +=XXX方法,在XXX方法中定義這個人如果笑了就怎麽怎麽樣,比如給他一巴掌,再讓他哭
?
為什麽我們往窗體上拖放了一個按鈕,點擊之後自動可以寫幹什麽,這也是微軟幫我們自動的做了一步,點擊之後他也自動創建了一條事件-方法的綁定(在Form1.Designer.cs文件裏面),所以我們可以直接跳轉到void btnTest1_Click的方法裏去直接寫幹什麽(讀者可以自己嘗試如果刪了這一行會怎麽樣)
?
詳細解釋一下方法:我們選中了Form1,然後可以切換到他的事件裏面,直接在Load事件裏面鼠標雙擊,然後在窗體Load事件所執行的方法中寫入btnTest1.PerformClick,這樣我們就成功調用了這個按鈕的方法(初始化的時候就默認點擊一次)
?
他控件自帶的方法參數是(object sender, EventArgs e)看起來怪怪的,這個不需要管他,如果是自定義的方法,就只要用到我們前面講的基本數據類型,你想清楚這個方法輸入什麽,輸出什麽就完了。一般一個函數只會有一個輸出,或者沒有輸出,但是可以有一個或者多個輸入(或者沒有輸入),讀者可以自己寫一些方法測試運行,能熟練的自己寫方法,是判斷是否入門的重要標誌,以後我們碰到一個實際問題的時候,總是需要想清楚大概需要哪些方法,每個方法需要什麽輸入,什麽輸出,把最關鍵的功能實現了,整個項目基本就預估能不能搞定,多久能搞定。
?
復選框checkbox和單選框radioButton應該放在一起講。因為復選框是可以多選的,所以無所謂,單選框只能選一個,所以要把一組的單選框用一個panel包起來(比如性別要麽男要麽女,必須選一個,也只能選一個,那麽性別這個組就要用一個panel包起來,此外可以有其他組,比如文科生/理科生,不同的組要分開),不管是單選框還是復選框,都只需要了解Check的屬性可以讀寫就行了
?
Combobox這個控件一般是用來做不讓用戶寫的(防止寫錯,想要詳細研究用法的可以百度搜一下C#的三級聯動菜單,經常發快遞的時候肯定要用到省/市/縣這種聯動菜單,不讓用戶亂寫可以防止出錯),讀者暫時只需要會簡單的刪除,增加和設置默認項目,獲取當前內容即可(其實還需要防止Combobox被人為的修改數值,可以百度或者搜C#的FAQ找到答案)
?
講到Combobox就有對比的ListBox,ListBox其實可以比Combobox有更多的屬性和方法可以弄,比如可以多選,可以有右擊菜單之類的,再此也不一一詳細解釋(還是只要會增加,刪除,獲取內容即可)
?
滾動條(progressbar)和拖動條(trackbar)也可以放在一起講,兩個都是有最大值,最小值,當前值(註意都是整數類型),區別就是trackbar是可以讀寫的,而progressbar是只能看不能改(如果你程序中不能判斷你的數據是否會超過滾動條的最大值最小值,還是要做判斷防止非法,否則程序會報錯)
?
PictureBox就是放一個圖像,我們最好先把Picturebox調整到跟圖片一樣的大小(當然也可以設置初始化的圖片,錯誤的圖片)
?
註意圖片的來源,點開項目中的Resources.resx,然後添加圖片進去(你也可以新建一個其他名稱的資源文件,resx後綴的就是資源文件,我們放到這裏面之後就可以在程序中輕松的訪問這些圖片,也可以是其他類型)
?
這樣我們隨時可以直接Properties.Resources.就顯示出來了他所有的資源(我們導入圖片的時候名字是1,2,3可能不允許這種直接數字的名稱,自動改成了_1,_2,_3)
?
TextBox和RichTextBox也可以放在一起講,註意勾選了MultiLine的Textbox也是可以直接多行的,而RichTextBox比傳統的TextBox的好處就是更適合處理大量文本(具體兩個控件能放多少文本百度就知道了)
?
此外RichTextBox更像是Word可以放圖片,超鏈接文本,而TextBox更像是記事本,只能放普通字符串(具體RichTextBox如何演變成一個Word還是需要大量處理的,下一小節會介紹別人做好的牛逼第三方控件,初學者沒必要花大量事件去研究一個控件,尤其是C#的程序員只要會拖控件就行了)
?
Label和LinkLabel都是可以實現超鏈接的(實際上LinkLabel不常用,因為我們不是在做網站,很少需要一個超鏈接到哪裏去,做程序Label用的很多,經常需要顯示一些文本,變量的變化情況等)
?
再看幾個全局的控件,MenuStrip就是頂部的菜單欄(Visual Studio本身就是一個很好的說明)
?
與之對應的有右鍵的菜單欄,拖放一個ContextMenuStrip,然後雖然他顯示在窗體頂部,其實運行的時候他是隱藏的,你可以在前面的listBox上設置右擊就用這個右鍵菜單(在工具欄搜索menu就可以快速定位到這些不常用控件,要做菜單就是搜menu,要做按鈕就是搜button)
?
除了大的菜單欄,大部分軟件還會有工具欄(在工具欄搜索strip就可以快速定位到這些不常用控件,比較小的一行文字或者圖標,一般在頂部菜單欄下方或者底部位置也放一排,這樣可以讓整個軟件顯得很規範,很好用),這兩個分別對應了toolStrip和statusStrip,註意他們的默認屬性Dock(就是靠在個窗體的哪個位置,默認是Top和Bottom,就是居於頂部和底部的,你也可以改成None然後就可以任意拖放位置了),當然這些復雜的控件編排我們暫時不需要掌握,只要知道有這麽回事。
?
最後介紹一個不太常用的日歷控件(選擇一個起始時間和結束時間,可能買機票,定酒店的時候用得到,但是C#一般不會用來做這個),我可以鼠標從9選擇到12,會自動顯示起始時間和終止時間,並計算差的天數(比如你要訂酒店要幾天也應該這麽算出來,更加詳細的可能還要精確到幾點到幾點,但是這裏只是簡單涉及了DataTime和TimeSpan這些C#定義好的時間類型,我們還是只要會拿過來用就行了)
?
?
更多教學視頻和資料下載,歡迎關註以下信息:
我的優酷空間:
http://i.youku.com/acetaohai123
?
我的在線論壇:
http://csrobot.gz01.bdysite.com/
?
問題交流:
QQ:910358960
郵箱:[email protected]
?
?
?
C#基礎視頻教程3.1 常見控件類型和使用方法