上節課講到,有完整功能版的接口和基本功能的接口。爲啥會這樣呢?這其實就是爲了少寫代碼,用個循環解決輸入的問題。你可以數字1的點擊事件是輸入1,就是每個按鈕做一段程序。這當然沒問題。
簡化版的接口是根據按鈕的Text值來判斷執行哪個功能,程序原本20多塊,可以省略成2塊。這裏說一下,建立項目和添加控件等基本動作不講了。
實際編程,要多考慮將重複的過程用循環來簡化編程。
第一步,建立操作類,Cacl,繼承ICacl,顯式實現接口。
第二步建立UI界面,就是那個winform操作界面。這個略。
第三步,寫後臺代碼。
雙擊form添加一load事件。這個事件就是爲了註冊各個按鈕的Click事件。
注意兩點,一是除了Button還有TextBox,要判斷一下,二是循環的選擇。
代碼:
private void Form1_Load(object sender, EventArgs e) { foreach (var item in Controls) { if (item.GetType() == typeof(Button)) { Button btn = item as Button; btn.Click += Btn_Click; } } }
private void Btn_Click(object sender, EventArgs e) { Button btn = (Button)sender; string key = btn.Text.Trim(); cacl.EnterString(key); }
後臺代碼新建一個Cacl對象,這個應該會吧?這個對象作爲主窗口的成員,也是我們要操作的對象,是面向對象編程的精髓。
ICacl cacl = new Cacl();
然後是綁定操作。注界面上有兩個TextBox,下面的只讀。設置一下Name,分別爲txtBoxCaclString和txtBoxResult。其實還有一個Label,指定名稱爲lbMemory。綁定代碼如下:
把這些代碼放到Load也行,放到構造函數初始化命令後面也行。textBoxResult.DataBindings.Add(new Binding("Text", cacl, "Result", true)); textBoxCaclList.DataBindings.Add(new Binding("Text", cacl, "CaclString", true, DataSourceUpdateMode.OnValidation)); lbmemory.DataBindings.Add(new Binding("Visible", cacl, "HaveMemory", false));
第二課結語。這一課其實說的是界面代碼。這裏寫的代碼還缺一句,就是那個“key"還沒有使用。後面加一句:
cacl.EnterString(key);
程序就是模仿並稍一點改造win7 計算器基本型,功能也別無限放大。
學習編程這樣的例子是最好的。
後面還有很多循環、數組、操作符重載,重寫ToString,條件判斷,這些都是平時編程的基本功。
第二課用循環簡化編程——C#計算器編程教學
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.