对于控件中显示的数据可能是不固定的。如果固定,数据发生了变化,又要重新设计,这样浪费成本,资源。
所以有用代码操作控件,自由度,可控度高。

1,树控件

 //把 tv 作为全局变量 , 这是对动态控件取值的一种方式TreeView tv = new TreeView();private void Form1_Load(object sender, EventArgs e){//把tv加入窗体Controls.Add(tv);//填满tv.Dock = DockStyle.Fill;DataTable dt = DBHelper.ExecuteTable("select * from grade");//遍历年级foreach (DataRow row in dt.Rows){//一行 一个节点TreeNode node = new TreeNode();//树节点 是 年级名node.Text = row["GradeName"].ToString();tv.Nodes.Add(node);//得到年级对应的这个班级DataTable classs = DBHelper.ExecuteTable(string.Format("select * from class where gradeid = '{0}'",row["gradeid"]));//把班级名 加到这个年级下foreach (DataRow item in classs.Rows){node.Nodes.Add(item["ClassName"].ToString());}}//双击table 生成点击 事件tv.AfterSelect += Tv_AfterSelect;}private void Tv_AfterSelect(object sender, TreeViewEventArgs e){//测试 MessageBox.Show(tv.SelectedNode.Text);//动态控件好处之一 值随数据库的改变 自身 样式 也随之改变}

2 tabcontrol & listview

private void Form2_Load(object sender, EventArgs e){ArrayList arr = new ArrayList();//tabcontrol + listview 动态控件TabControl tc = new TabControl();tc.Dock = DockStyle.Fill;this.Controls.Add(tc);DataTable grade = DBHelper.ExecuteTable("select * from Grade");foreach (DataRow row in grade.Rows){//一个选项卡页 对应 一个 年级名TabPage tp = new TabPage(row["gradeName"].ToString());//把年级 添加到 选项卡 中的 选项页tc.TabPages.Add(tp);// 实例化一个 listview ListView lv = new ListView();//并 加入到 每个 选项卡页tp.Controls.Add(lv);//双击事件 lv.DoubleClick += Lv_DoubleClick;lv.Dock = DockStyle.Fill;//得到班级信息DataTable classs = DBHelper.ExecuteTable(string.Format("select * from class where gradeid = '{0}'", row["gradeid"]));foreach (DataRow item in classs.Rows){//遍历 班级表 并把班级 加入到 每个listview 中ListViewItem lvi = new ListViewItem(item["ClassName"].ToString());lv.Items.Add(lvi);}}}private void Lv_DoubleClick(object sender, EventArgs e){//这是得到 listview 中的 选中值 , 英文好一点 就 看懂了 但这种方式最死,而且 蠢 易出错//string value = ( ((Controls[0] as TabControl).SelectedTab as TabPage).Controls[0] as ListView ).SelectedItems[0].Text;//MessageBox.Show(value);//第三种方式 , 面向对象思想的 运用 //如果 list view 触发了 这个双击事件 就得到 选中的值string value = (sender as ListView).SelectedItems[0].Text;MessageBox.Show(value);}

.net动态控件的使用(listview ,treeview,tabControl)相关推荐

  1. WPF 基础控件之 TabControl样式

    其他基础控件 1.Window 2.Button 3.CheckBox 4.ComboBox 5.DataGrid 6.DatePicker 7.Expander 8.GroupBox 9.ListB ...

  2. android二级菜单ui,Android UI 之实现多级树形列表TreeView示例

    所谓TreeView就是在Windows中常见的多级列表树,在Android中系统只默认提供了ListView和ExpandableListView两种列表,最多只支持到二级列表的实现,所以如果想要实 ...

  3. Android UI 之实现多级列表TreeView

    所谓TreeView就是在Windows中常见的多级列表树,在Android中系统只默认提供了ListView和ExpandableListView两种列表,最多只支持到二级列表的实现,所以如果想要实 ...

  4. WPF--控件(代码讲解)

    前言: 粗略而言,使用最多控件的基本为6类,即: (1)布局控件:可以容纳多个控件或嵌套其他布局控件.有Grid.StackPanel.DockPanel等.他们拥有共同的父类Panel. Panel ...

  5. 摘:轻而易举拥有xp风格的界面

    轻而易举拥有xp风格的界面 Windows XP发布时,我们中许多人都为她华丽漂亮的界面折服和兴奋.然而,.NET1.0发布时,我们中又有许多人,包括我自己,对它不支持XP风格感到大失所望.可事实是, ...

  6. 轻而易举拥有xp风格的界面

        轻而易举拥有xp风格的界面 Windows XP发布时,我们中许多人都为她华丽漂亮的界面折服和兴奋.然而,.NET1.0发布时,我们中又有许多人,包括我自己,对它不支持XP风格感到大失所望.可 ...

  7. ASP.NET编程规范

    本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2007/12/19/1005661.html,如需转载请自行联系原作者 第一部分:界面设 ...

  8. JavaFX8 modena样式(css)源码

    转载自  JavaFX8 modena样式(css)源码 /* Modena This is the second generation theme for JavaFX after Caspian. ...

  9. NET-TreeView控件说明

    TreeView控件用来显示信息的分级视图,如同Windows里的资源管理器的目录.TreeView控件中的各项信息都有一个与之相关的Node对象.TreeView显示Node对象的分层目录结构,每个 ...

最新文章

  1. 正则表达式实现将html文本转换为纯文本格式(将html字符串转换为纯文本方法)
  2. webstorm小技巧
  3. iOS之深入解析Xcode的拼写检查
  4. 03-Bootstrap学习
  5. 深入剖析cpp对象模型
  6. c语言4x4矩形列互换,线反转法4x4键盘C语言程序问题.急...
  7. 拓端tecdat|用Python粒度分析及其在沉积学中应用研究
  8. JUnit 5和JUnit 4比较
  9. php个人发卡搭建教程,个人发卡平台ZFAKA程序搭建详细教程
  10. 数学期望、方差、标准差
  11. webpack常用插件
  12. 专访最强夫妻店:“神庙逃亡2”开发背后的故事
  13. 7-2 你今天刷快手了吗
  14. 31岁才转行程序员,现在34了,我来说说我的经历和一些感受吧...
  15. 基本概念的理解与讨论
  16. 业聚医疗通过聆讯:上半年营收6885万美元 钱永勋为实控人
  17. .NET 6 Preview 1 发布
  18. 大数据时代,python竟是最好的语言?
  19. STM32控制编码器电机实现【速度闭环控制】与【位置闭环控制】
  20. 初识JAVA07:自定义类、构造方法、this关键字、static关键字、block关键字、Debug调试工具

热门文章

  1. 前端学习(1347):用户的增删改查操作4修改
  2. 前端学习(1189):事件基本使用
  3. 前端学习(525):等分布局
  4. mybatis学习(45):开启二级缓存
  5. 第一百二十六期:代码以外的生存之道,献给每位入了坑的码农
  6. 项目管理(4):备战pmp
  7. java学习(63):普通内部类
  8. QT tr与Qstring的差别
  9. 剑指offer--旋转数组的最小数字
  10. idea html ajax,在 IntelliJ IDEA 8.1中编写一个ajax jquery实例,取不到页面上的值