需求动态构建控件 并根据相应类型赋予默认值 
如果写死代码 就是一堆的 if else  if else 写完感觉有点想吐..
请大家帮忙出出注意 该怎么规划 比较利于扩展 该用哪些设计模式? 构造者? 抽象工厂伪代码如下 // 控件有三个属性 1 控件类型 (暂时只用文本框TextBox,下拉条ComboBox,日期框,单选框)  
2 默认值类型(枚举) (纯文本,SQL语句,文本用逗号切割)  
3 值内容(string)//------------------------------------------------
//如果控件是文本框(TextBox) 
//{
/*
 1 默认值类型是纯文本  如值=(销售部,财务部,人事部)
  控件.Text = 值  2 默认值类型是SQL语句 (第一行第一列数据)  如值 = (select count(1) from 部门)     控件.Text =  20  3 默认值类型是文本用逗号切割
  返回第一个切割值  如值 = (销售部,财务部,人事部)   
  控件.Text = 销售部
 * */// }//------------------------------------------------//如果控件是下拉框(ComboBox) 默认值模式只能是SQL或者切割字符串 绑定items 项
//{
    /*
 1 默认值类型是纯文本  如值=(销售部,财务部,人事部)
  控件.Text = 值 
this.comboBox1.Items.AddRange(new object[] { "销售部,财务部,人事部" }); 2 默认值类型是SQL语句 如值 DataTable dt = (select 部门名称 from 部门)   this.comboBox1.DataSource= dt 3 默认值类型是文本用逗号切割
  this.comboBox1.Items.AddRange(值.Split(',');
    */
//}//------------------------------------------------//如果控件是日期框 默认值是文本 强转为日期时间型赋值 如果是SQL 默认值返回第一行第一列强转 //{
/*
  1 默认值类型是纯文本  如值不能强转为 日期时间型报错
    
  2 默认值类型是SQL语句 返回(第一行第一列数据)  如值不能强转为日期时间型报错    3 默认值类型是文本用逗号切割  返回第一个切割值 如值不能强转为日期时间型报错  */
//}

解决方案 »

  1.   

    本帖最后由 bdmh 于 2012-12-04 13:22:06 编辑
      

  2.   

    让别人帮你写代码啊
       CheckBox cb = new CheckBox();
     cb.Text= ((bus)M_attribute.BusArray[i]).ToString();
    cb.Font = new Font("宋体", 9F, FontStyle.Bold); 
    cb.Checked = false;
    cb.Location = new System.Drawing.Point(cbx, cby);
                      
    cb.Size = this.checkBox1.Size;
    cb.Name = 第一行第一列数据;
      cb.CheckedChanged += new System.EventHandler(this.Checkcount);
     this.Controls.Add(cb);
      

  3.   

    switch(控件类型)
    case"TextBox":
    //执行你要的操作breadk;
      

  4.   

    回味 1楼2楼中..
    没看懂我的意思 我不是要写代码 死代码我也会写
    switch 和 if else 没什么区别..