.net动态控件的使用(listview ,treeview,tabControl)
对于控件中显示的数据可能是不固定的。如果固定,数据发生了变化,又要重新设计,这样浪费成本,资源。
所以有用代码操作控件,自由度,可控度高。
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)相关推荐
- WPF 基础控件之 TabControl样式
其他基础控件 1.Window 2.Button 3.CheckBox 4.ComboBox 5.DataGrid 6.DatePicker 7.Expander 8.GroupBox 9.ListB ...
- android二级菜单ui,Android UI 之实现多级树形列表TreeView示例
所谓TreeView就是在Windows中常见的多级列表树,在Android中系统只默认提供了ListView和ExpandableListView两种列表,最多只支持到二级列表的实现,所以如果想要实 ...
- Android UI 之实现多级列表TreeView
所谓TreeView就是在Windows中常见的多级列表树,在Android中系统只默认提供了ListView和ExpandableListView两种列表,最多只支持到二级列表的实现,所以如果想要实 ...
- WPF--控件(代码讲解)
前言: 粗略而言,使用最多控件的基本为6类,即: (1)布局控件:可以容纳多个控件或嵌套其他布局控件.有Grid.StackPanel.DockPanel等.他们拥有共同的父类Panel. Panel ...
- 摘:轻而易举拥有xp风格的界面
轻而易举拥有xp风格的界面 Windows XP发布时,我们中许多人都为她华丽漂亮的界面折服和兴奋.然而,.NET1.0发布时,我们中又有许多人,包括我自己,对它不支持XP风格感到大失所望.可事实是, ...
- 轻而易举拥有xp风格的界面
轻而易举拥有xp风格的界面 Windows XP发布时,我们中许多人都为她华丽漂亮的界面折服和兴奋.然而,.NET1.0发布时,我们中又有许多人,包括我自己,对它不支持XP风格感到大失所望.可 ...
- ASP.NET编程规范
本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2007/12/19/1005661.html,如需转载请自行联系原作者 第一部分:界面设 ...
- JavaFX8 modena样式(css)源码
转载自 JavaFX8 modena样式(css)源码 /* Modena This is the second generation theme for JavaFX after Caspian. ...
- NET-TreeView控件说明
TreeView控件用来显示信息的分级视图,如同Windows里的资源管理器的目录.TreeView控件中的各项信息都有一个与之相关的Node对象.TreeView显示Node对象的分层目录结构,每个 ...
最新文章
- 正则表达式实现将html文本转换为纯文本格式(将html字符串转换为纯文本方法)
- webstorm小技巧
- iOS之深入解析Xcode的拼写检查
- 03-Bootstrap学习
- 深入剖析cpp对象模型
- c语言4x4矩形列互换,线反转法4x4键盘C语言程序问题.急...
- 拓端tecdat|用Python粒度分析及其在沉积学中应用研究
- JUnit 5和JUnit 4比较
- php个人发卡搭建教程,个人发卡平台ZFAKA程序搭建详细教程
- 数学期望、方差、标准差
- webpack常用插件
- 专访最强夫妻店:“神庙逃亡2”开发背后的故事
- 7-2 你今天刷快手了吗
- 31岁才转行程序员,现在34了,我来说说我的经历和一些感受吧...
- 基本概念的理解与讨论
- 业聚医疗通过聆讯:上半年营收6885万美元 钱永勋为实控人
- .NET 6 Preview 1 发布
- 大数据时代,python竟是最好的语言?
- STM32控制编码器电机实现【速度闭环控制】与【位置闭环控制】
- 初识JAVA07:自定义类、构造方法、this关键字、static关键字、block关键字、Debug调试工具