根据下来列表来动态显示TabControl下的元素

需要准备两个控件:Combobox (命名为:cbPrjType)和 TabControl (命名为:tabPrjType),TabControl下面有六个子元素分别是:tabPage1,tabPage2,tabPage3,tabPage4,tabPage5,tabPage6

  我们可以想到加载界面的时候会给cbPrjType绑定元素,代码如下:

        private void InitProjectTypeDic()           //绑定下拉值
        {string strMsg = "";CorpProjectAddClass cpas = new CorpProjectAddClass();dsDic = cpas.GetDicDataSet(out strMsg);     //查询定义的字典表if (dsDic.Tables["XMBL_TbProjectTypeDic_SZ"] != null){this.cbPrjType.Items.Clear();       //清空集合元素this.cbPrjType.Items.Add(new MyItem("", ""));       //为第一个option添加为空foreach (DataRow dr in dsDic.Tables["XMBL_TbProjectTypeDic_SZ"].Rows){this.cbPrjType.Items.Add(new MyItem(dr["ProjectTypeNum"].ToString(), dr["ProjectTypeName"].ToString())); }this.cbPrjType.DisplayMember = "Name";      //显示的属性(显示)this.cbPrjType.ValueMember = "ID";          //选项中实际的值(隐藏)this.cbPrjType.SelectedIndex = 0;           //默认选中第一个
            }}

  其次给cbPrjType添加改变下拉事件SelectedIndexChanged:

     private void cbPrjType_SelectedIndexChanged(object sender, EventArgs e){string cbVal="";    //记录当前选中下拉的值 if (cbPrjType.SelectedItem != null && (cbPrjType.SelectedItem as MyItem).ID != "")  cbVal = (cbPrjType.SelectedItem as MyItem).Name;        //获取选中下拉的值elsereturn; this.tabPage1.Parent = null;        //指定tabPage1的父元素为空(可实现隐藏作用)this.tabPage2.Parent = null;this.tabPage3.Parent = null;this.tabPage4.Parent = null;this.tabPage5.Parent = null;this.tabPage6.Parent = null;JempType(cbVal);    //传入选中的值,从而判断显示哪个tabPage   }

  根据选中元素的值来进行判断:

     private void JempType(string prjType){switch (prjType){case "城市道路工程":this.tabPage1.Text = "城市道路工程";      //tabPage显示的名称this.tabPage1.Parent = tabPrjType;        //给tabPage指定父元素tabPrjType.Enabled = true;          break;case "城市桥梁工程":this.tabPage2.Text = "城市桥梁工程";this.tabPage2.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "排水管道":this.tabPage3.Text = "排水管道";this.tabPage3.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "供水管道":this.tabPage3.Text = "供水管道";this.tabPage3.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "中水管道":this.tabPage3.Text = "中水管道";this.tabPage3.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "燃气管道":this.tabPage3.Text = "燃气管道";this.tabPage3.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "热力管道":this.tabPage3.Text = "热力管道";this.tabPage3.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "污水处理厂":this.tabPage4.Text = "污水处理厂";this.tabPage4.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "供水厂":this.tabPage4.Text = "供水厂";this.tabPage4.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "给水泵站":this.tabPage4.Text = "给水泵站";this.tabPage4.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "排水泵站":this.tabPage4.Text = "排水泵站";this.tabPage4.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "垃圾处理工程":this.tabPage4.Text = "垃圾处理工程";this.tabPage4.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "城市隧道工程":this.tabPage5.Text = "城市隧道工程";this.tabPage5.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "公共交通工程":this.tabPage6.Text = "公共交通工程";this.tabPage6.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "轨道交通工程":this.tabPage6.Text = "轨道交通工程";this.tabPage6.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "环节卫生工程":this.tabPage6.Text = "环节卫生工程";this.tabPage6.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "照明工程":this.tabPage6.Text = "照明工程";this.tabPage6.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "绿化工程":this.tabPage6.Text = "绿化工程";this.tabPage6.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "电力工程":this.tabPage6.Text = "电力工程";this.tabPage6.Parent = tabPrjType;tabPrjType.Enabled = true;break;case "通信工程":this.tabPage6.Text = "通信工程";this.tabPage6.Parent = tabPrjType;tabPrjType.Enabled = true;break;} }

  如果想循环遍历TabContorl下所有的TextBox控件并赋值为空可以这么写:

    foreach (TabPage page in tabControl1.TabPages){foreach (Control control in page.Controls){if (control is TextBox){((TextBox)control) = "";}if (control is ComboBox){((ComboBox)control).SelectedIndex = -1;}}}  

  获取选中下拉的问本值:

comboBox1.GetItemText(comboBox1.Items[comboBox1.SelectedIndex]);

  实现效果如下:

    

    

C# 根据Combobox控件来动态显示TabControl下的子元素相关推荐

  1. Tkinter Combobox控件

    欢迎大家来博主的小站传送门 Combobox控件 通过前面内容的介绍我们知道 Listbox 是一个供用户从列表项中选择相应条目的控件.但在有些情况下,比如列表的项目过多时,若使用列表控件,列出所有选 ...

  2. silverlight之How To:设置ComboBox控件的数据源当ComboBox用来作为DataGrid的某列的编辑控件时...

    DataGrid是个可编辑的列表控件,而且可以用已有的输入控件来作为某一列的编辑控件,比如用ComboBox控件来作为某列的编辑控件供用户选择数据,这个时候就要先设置好ComboBox控件的下拉列表项 ...

  3. .Net平台Winform两个ComboBox控件绑定同一个数据源

    今天WINFROM编程遇到这么一个问题:是有关WINFORM中两个comboBox控件绑定同一个数据源的问题,在窗体的界面上有两个comboBox,我在Form1_Load中对他们做了数据绑定(具体代 ...

  4. 在ComboBox控件中使用嵌入字体。

    ComboBox控件的fontFamily样式学习. 示例: <?xml version="1.0" encoding="utf-8"?><! ...

  5. Winform ComboBox控件高亮显示

    //重绘下拉表单窗口,需要在窗口设计代码中加入下面这一句 this.cmdChannelName.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawF ...

  6. MFC之ComboBox控件用法

    本文以实例形式较为详细的讲述了MFC中ComboBox控件的用法.分享给大家供大家参考之用.具体方法如下: 一.ComboBox简介: ComboBox控件是由一个文本输入控件和一个下拉菜单组成的.用 ...

  7. 设置ComboBox控件的边框颜色.

    ComboBox控件的borderColor样式学习. 示例: 代码: <?xml version="1.0" encoding="utf-8"?> ...

  8. 设置ComboBox控件的小箭头颜色.

    ComboBox控件的iconColor样式. 示例: 代码: <?xml version="1.0" encoding="utf-8"?> < ...

  9. 设置ComboBox控件的提示内容.

    ComboBox控件的prompt属性. 示例: 代码: <?xml version="1.0" encoding="utf-8"?> <!- ...

最新文章

  1. gensim的word2vec如何得出词向量(python)
  2. B1059 C语言竞赛
  3. html用JQuery自定义表单验证。
  4. ECMAScript 6入门
  5. Linux笔记16.磁盘管理
  6. 信息系统项目管理师-项目采购管理知识点
  7. 4位加法器的设计代码verilog_一个简单的8位处理器完整设计过程及verilog代码
  8. react学习(57)--map赋值
  9. linux监控命令执行,你可能不知道的 即时监控 Linux 使用者执行指令的三种方法...
  10. php打png图片水印颜色失真,ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整...
  11. Zookeeper 概述与安装、配置参数、数据结构、选举机制、客户端命令
  12. 《HTTP权威指南》读书笔记(1)-HTTP简介与消息结构
  13. 用matlab实现灰色预测gm11模型,用MATLAB实现灰色预测GM11模型
  14. 天下码农苦外包公司久矣
  15. 饭后小甜点leetcode——堆
  16. mkdir: Call From lzh/192.168.66.150 to localhost:9000 failed on connection exception:
  17. python 切片器_Excel数据透视表应用之三切片器
  18. first season twenty-third episode,Ben was born!!!,Hi Ben???
  19. Excel文件双击打开后无内容且不可编辑,再次双击文件正常显示
  20. 移动端弹出层滚动时禁止body滚动

热门文章

  1. 全球及中国多层PCB行业行业投资前景与发展趋势预测分析报告2022-2028
  2. 小米 vs 华为!最近业界各类事情不少,看看这两家的情况如何?
  3. Jmeter 启动时报错:Not able to find Java executable or version. Please check your Java installation.
  4. [深入理解SSD 为SSD编程] 访问模式和系统优化
  5. 害!天天在公司写业务代码,面几家挂几家,感觉自己快废了!
  6. 基于Arduino、树莓派的两款解魔方机器人
  7. 选择与循环:剪刀石头布_奔跑吧 | 月亮马戏——无限循环中的选择与坚持
  8. 华硕ASUS-X53S拆机升级
  9. Win10 引用的帐户目前已被锁定,可能无法登录
  10. python-按首字母分类形成列表