第二課用循環簡化編程——C#計算器編程教學

上節課講到,有完整功能版的接口和基本功能的接口。爲啥會這樣呢?這其實就是爲了少寫代碼,用個循環解決輸入的問題。你可以數字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。

綁定代碼如下:

            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));
把這些代碼放到Load也行,放到構造函數初始化命令後面也行。
第二課結語。這一課其實說的是界面代碼。這裏寫的代碼還缺一句,就是那個“key"還沒有使用。後面加一句:
cacl.EnterString(key);
程序就是模仿並稍一點改造win7 計算器基本型,功能也別無限放大。
學習編程這樣的例子是最好的。
後面還有很多循環、數組、操作符重載,重寫ToString,條件判斷,這些都是平時編程的基本功。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章