習慣上是設計繼承 (inherit) 自 Form 的類別,然後將需要的視窗元件設定為屬性 (property) ,接著在建構子 (constructor) 中用 new 實際建立每個視窗元件物件 (object) ,依序加入 Form 內。
我們先以一個簡單的例子示範基本概念
using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; public class Form1 : Form { public Button button1; public TextBox textbox1; public ListBox listbox1; public Form1() { this.button1 = new Button(); this.textbox1 = new TextBox(); this.listbox1 = new ListBox(); this.Controls.Add(button1); this.Controls.Add(textbox1); this.Controls.Add(listbox1); } [STAThread] static void Main() { Application.Run(new Form1()); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:guidemo.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2012 年 10 月 */
C# 繼承的寫法就是在子類別 (subclass) 名稱後接冒號,然後是父類別 (superclass) 名稱
public class Form1 : Form {
我們使用三個視窗元件,分別是按鈕 Button 、文字方塊 TextBox 、多重選項方塊 ListBox
public Button button1; public TextBox textbox1; public ListBox listbox1;
用 new 建立視窗元件後,要將視窗元件加入 Form 的 Controls 屬性中。 Controls 為 Control 型態的集合物件,專門用來存放視窗元件
this.Controls.Add(button1); this.Controls.Add(textbox1); this.Controls.Add(listbox1);
接下來 Main() 之前有一行
[STAThread]
這是用來標記 Form 的進入點。
Main() 裡面就是以 Application 呼叫 Run() ,並以 Form 物件當參數 (parameter)
static void Main() { Application.Run(new Form1()); }
編譯需要加入參數 -pkg:dotnet
執行結果如下
咦?三個元件都擠在一起,這是因為元件座標的預設值為 (0, 0) ,也就是視窗的左上角,所以三個視窗元件都是從 (0, 0) 開始顯示,導致都擠在一起。接下來我們來看看怎麼將視窗元件座標定位吧!
中英文術語對照 | |
---|---|
類別 | class |
繼承 | inherit |
屬性 | property |
建構子 | constructor |
物件 | object |
子類別 | subclass |
父類別 | superclass |
參數 | parameter |
您可以繼續參考
GUI 篇
相關目錄
回 C# 入門指南
回 C# 教材
回首頁
參考資料
http://msdn.microsoft.com/zh-tw/library/dd30h2yb.aspx
http://msdn.microsoft.com/zh-tw/library/ms229601%28v=vs.80%29.aspx
http://msdn.microsoft.com/zh-tw/library/ms229599%28v=vs.80%29.aspx
http://msdn.microsoft.com/zh-tw/library/ms229597%28v=vs.80%29.aspx
http://blogs.msdn.com/b/jfoscoding/archive/2005/04/07/406341.aspx
http://msdn.microsoft.com/zh-tw/library/ms182351%28v=vs.80%29.aspx
5 則留言:
不好意思,我想請問一下
在 Windows 下不用 mono
單純靠 VC# 怎樣讓 Console 視窗不見呀
因為我是開空專案想要從頭敲起 GUI
但是背後總會出現個黑窗
我也開了視窗的專案出來比較
但實在找不出 Windows Form 的專案多了那些叫黑窗隱藏的資訊說
使用 Visual C# 的話,請按照 Visual 軟體拉 GUI 的方式製作圖形介面會比較恰當唷!或著可在命令列用 csc 指令編譯看看,依據 C# 標準應該會得到相同的結果 :)
抱歉,目前我是在學習期,所以我不打算拉一拉就當作學到了,當我要快速開發再去拉就好了,因為如果從拉視窗學起,會有一堆不清不楚的設定就已經生在那了,我打算釐清再WYSWYG
不過我還是想問
我用空專案 從頭敲一個 WinForm 會是用小黑窗呼叫出一個 form 視窗(兩個視窗)
可是用Windows Form 專案拉出來的卻是直接有視窗沒有 Console 介面(一個視窗)
所以我不知道差在哪裡說
(順便感謝大大一系列的教學文)
IDE 的問題,我幫不了你唷,也不在這篇文章的討論範圍 sorry
好吧 還是感謝大大
其實我也覺得有點超出該問的範疇
(不過我只是在懷疑是不是有個 XML 之類的設定檔可以控制 no Console ,畢竟最終是不可能帶 IDE 的專案檔給人的,那應該是某處有加一串東西這樣)
張貼留言