
這需要三個 Label 、兩個 TextBox 跟七個 Button ,這些都設定成 EncryptGUI 的屬性 (property) ,然後建構子 (constructor) 中建立所有元件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | 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()); } } /* 《程式語言教學誌》的範例程式 檔名:encryptgui.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2012 年 10 月 */ |
先留意到第 32 行
32 | this .SuspendLayout(); |
SuspendLayout() 用來暫時停止配置視窗元件,這是因為接下來連續為每個視窗元件設定屬性,可隱藏多個 Layout 事件。然後到建構子的最後要呼叫 ResumeLayout() ,並以 false 當參數 (parameter) ,就會重新配置視窗元件
116 | this .ResumeLayout( false ); |
下面 Location 屬性指定元件在視窗的座標, Font 屬性設定文字標籤的字型, Name 為名稱, TabIndex 為使用 tab 鍵的順序, Text 設定文字標籤。第 99 行
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
沒有留言:
張貼留言