程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 統一的獲取,設置UI控件值(1)

統一的獲取,設置UI控件值(1)

編輯:關於C語言

在編寫WebForm或WinForm程序時,我們經常需要編寫很多獲取,設置UI控件值代碼.這確實 是一件重復,麻煩而又容易出錯的工作.所以我們應該將這個工作交給計算機去做解放我們的 勞動力.一般來說UI上的控件都是和我們的EntityObject相對應的,所以利用反射將 EntityObject中屬性值賦給控件或通過控件填充EntityObject是非常方便的.但是要想讓計算 機自動干活就要頂一個規則,就是控件ID = 前綴 + 屬性名.比如我們有一個User類其定義如 下:

class User
  {
    string _name;
     string _pwd;
    public string Name
    {
      get { return this._name; }
      set { this._name = value;}
     }
    public string Pwd
    {
      get { return this._pwd; }
      set { this._pwd = value; }
    }
};

而我們要寫一個登錄界面,那我們就會有txtName和txtPwd兩個文本框來 接受輸入(我習慣用三個字母縮寫來做前綴),這樣反射才能派上用場.RoR有條編程理念叫 ”約定由於配置”,我很同意,這可以使我們減少很多無意義的工作.

//控 件類型枚舉,一些常用的WinForm和WebForm控件

public enum CtlType
   {
    TextBox,
    DropDownList,
    ComboBox,
    Hidden,
    CheckBox,
  }
  //值對象和控件根據名字 相互映射
  public class ControlHelper
  {
    //id名稱前綴 表
    public static readonly string[] PreFix_Table = new string[5];
    static ControlHelper()
    {
      PreFix_Table [(int)CtlType.TextBox]   = "txt";
      PreFix_Table [(int)CtlType.DropDownList] = "drp";
      PreFix_Table [(int)CtlType.ComboBox]   = "cmb";
      PreFix_Table [(int)CtlType.Hidden]    = "hdn";
      PreFix_Table [(int)CtlType.CheckBox]   = "chk";
    }
//解析控件名
    private static string ParseCtlID(string id, CtlType ctlType)
    {
      return id.Replace(PreFix_Table[(int)ctlType], "");
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved