這需要三個 Label 、兩個 TextBox 跟七個 Button ,這些都設定成 EncryptGUI 的屬性 (property) ,然後建構子 (constructor) 中建立所有元件
using System; using System.Windows.Forms; using System.Drawing; class EncryptGUI : Form { private Label inputLabel; private Label outputLabel; private TextBox inputField; private TextBox outputField; private Button newButton; private Button loadButton; private Button saveButton; private Button encodeButton; private Button decodeButton; private Button clearButton; private Button copyButton; private Label displayLabel; public EncryptGUI() { this.inputLabel = new Label(); this.outputLabel = new Label(); this.inputField = new TextBox(); this.outputField = new TextBox(); this.newButton = new Button(); this.loadButton = new Button(); this.saveButton = new Button(); this.encodeButton = new Button(); this.decodeButton = new Button(); this.clearButton = new Button(); this.copyButton = new Button(); this.displayLabel = new Label(); this.SuspendLayout(); this.inputLabel.Location = new Point(10, 10); this.inputLabel.Font = new Font("Helvetica", 12F); this.inputLabel.Name = "inputlabel"; this.inputLabel.Size = new Size(60, 20); this.inputLabel.Text = "Input:"; this.outputLabel.Location = new Point(10, 40); this.outputLabel.Font = new Font("Helvetica", 12F); this.outputLabel.Name = "outputlabel"; this.outputLabel.Size = new Size(60, 20); this.outputLabel.Text = "Output:"; this.inputField.Location = new Point(80, 10); this.inputField.Name = "inputField"; this.inputField.Size = new Size(480, 20); this.inputField.TabIndex = 0; this.inputField.Text = ""; this.outputField.Location = new Point(80, 40); this.outputField.Name = "outputField"; this.outputField.Size = new Size(480, 20); this.outputField.Enabled = false; this.outputField.Text = ""; this.newButton.Location = new Point(10, 70); this.newButton.Name = "newButton"; this.newButton.TabIndex = 1; this.newButton.Text = "New"; this.loadButton.Location = new Point(90, 70); this.loadButton.Name = "loadButton"; this.loadButton.TabIndex = 2; this.loadButton.Text = "Load"; this.saveButton.Location = new Point(170, 70); this.saveButton.Name = "saveButton"; this.saveButton.TabIndex = 3; this.saveButton.Text = "Save"; this.encodeButton.Location = new Point(250, 70); this.encodeButton.Name = "encodeButton"; this.encodeButton.TabIndex = 4; this.encodeButton.Text = "Encode"; this.decodeButton.Location = new Point(330, 70); this.decodeButton.Name = "decodeButton"; this.decodeButton.TabIndex = 5; this.decodeButton.Text = "Decode"; this.clearButton.Location = new Point(410, 70); this.clearButton.Name = "clearButton"; this.clearButton.TabIndex = 6; this.clearButton.Text = "Clear"; this.copyButton.Location = new Point(490, 70); this.copyButton.Name = "copyButton"; this.copyButton.TabIndex = 7; this.copyButton.Text = "Copy"; this.displayLabel.Location = new Point(10, 100); this.displayLabel.Font = new Font("Courier", 12F); this.displayLabel.Name = "displaylabel"; this.displayLabel.Size = new Size(500, 20); this.displayLabel.Text = "something happened..."; this.ClientSize = new Size(580, 125); this.Controls.Add(this.inputLabel); this.Controls.Add(this.outputLabel); this.Controls.Add(this.inputField); this.Controls.Add(this.outputField); this.Controls.Add(this.newButton); this.Controls.Add(this.loadButton); this.Controls.Add(this.saveButton); this.Controls.Add(this.encodeButton); this.Controls.Add(this.decodeButton); this.Controls.Add(this.clearButton); this.Controls.Add(this.copyButton); this.Controls.Add(this.displayLabel); this.BackColor = Color.LightGray; this.Name = "demoguiname"; this.Text = "demogui"; this.ResumeLayout(false); } [STAThread] public static void Main() { Application.EnableVisualStyles(); Application.Run(new EncryptGUI()); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:encryptgui.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2012 年 10 月 */
先留意到第 32 行
this.SuspendLayout();
SuspendLayout() 用來暫時停止配置視窗元件,這是因為接下來連續為每個視窗元件設定屬性,可隱藏多個 Layout 事件。然後到建構子的最後要呼叫 ResumeLayout() ,並以 false 當參數 (parameter) ,就會重新配置視窗元件
this.ResumeLayout(false);
下面 Location 屬性指定元件在視窗的座標, Font 屬性設定文字標籤的字型, Name 為名稱, TabIndex 為使用 tab 鍵的順序, Text 設定文字標籤。第 99 行
this.ClientSize = new Size(580, 125);
Form 的 ClientSize 屬性設定視窗大小。
編譯時記得加入 -pkg:dotnet 參數,接下來我們開始整合 Encrypt 吧!
中英文術語對照 | |
---|---|
屬性 | property |
建構子 | constructor |
參數 | 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
http://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.suspendlayout%28v=vs.80%29.aspx
http://msdn.microsoft.com/zh-tw/library/w8k76wfs%28v=vs.80%29.aspx
沒有留言:
張貼留言