.net动态控件的使用(listview ,treeview,tabControl)
生活随笔
收集整理的這篇文章主要介紹了
.net动态控件的使用(listview ,treeview,tabControl)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
對(duì)于控件中顯示的數(shù)據(jù)可能是不固定的。如果固定,數(shù)據(jù)發(fā)生了變化,又要重新設(shè)計(jì),這樣浪費(fèi)成本,資源。
所以有用代碼操作控件,自由度,可控度高。
1,樹(shù)控件
//把 tv 作為全局變量 , 這是對(duì)動(dòng)態(tài)控件取值的一種方式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");//遍歷年級(jí)foreach (DataRow row in dt.Rows){//一行 一個(gè)節(jié)點(diǎn)TreeNode node = new TreeNode();//樹(shù)節(jié)點(diǎn) 是 年級(jí)名node.Text = row["GradeName"].ToString();tv.Nodes.Add(node);//得到年級(jí)對(duì)應(yīng)的這個(gè)班級(jí)DataTable classs = DBHelper.ExecuteTable(string.Format("select * from class where gradeid = '{0}'",row["gradeid"]));//把班級(jí)名 加到這個(gè)年級(jí)下foreach (DataRow item in classs.Rows){node.Nodes.Add(item["ClassName"].ToString());}}//雙擊table 生成點(diǎn)擊 事件tv.AfterSelect += Tv_AfterSelect;}private void Tv_AfterSelect(object sender, TreeViewEventArgs e){//測(cè)試 MessageBox.Show(tv.SelectedNode.Text);//動(dòng)態(tài)控件好處之一 值隨數(shù)據(jù)庫(kù)的改變 自身 樣式 也隨之改變}2 tabcontrol & listview
private void Form2_Load(object sender, EventArgs e){ArrayList arr = new ArrayList();//tabcontrol + listview 動(dòng)態(tài)控件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){//一個(gè)選項(xiàng)卡頁(yè) 對(duì)應(yīng) 一個(gè) 年級(jí)名TabPage tp = new TabPage(row["gradeName"].ToString());//把年級(jí) 添加到 選項(xiàng)卡 中的 選項(xiàng)頁(yè)tc.TabPages.Add(tp);// 實(shí)例化一個(gè) listview ListView lv = new ListView();//并 加入到 每個(gè) 選項(xiàng)卡頁(yè)tp.Controls.Add(lv);//雙擊事件 lv.DoubleClick += Lv_DoubleClick;lv.Dock = DockStyle.Fill;//得到班級(jí)信息DataTable classs = DBHelper.ExecuteTable(string.Format("select * from class where gradeid = '{0}'", row["gradeid"]));foreach (DataRow item in classs.Rows){//遍歷 班級(jí)表 并把班級(jí) 加入到 每個(gè)listview 中ListViewItem lvi = new ListViewItem(item["ClassName"].ToString());lv.Items.Add(lvi);}}}private void Lv_DoubleClick(object sender, EventArgs e){//這是得到 listview 中的 選中值 , 英文好一點(diǎn) 就 看懂了 但這種方式最死,而且 蠢 易出錯(cuò)//string value = ( ((Controls[0] as TabControl).SelectedTab as TabPage).Controls[0] as ListView ).SelectedItems[0].Text;//MessageBox.Show(value);//第三種方式 , 面向?qū)ο笏枷氲?運(yùn)用 //如果 list view 觸發(fā)了 這個(gè)雙擊事件 就得到 選中的值string value = (sender as ListView).SelectedItems[0].Text;MessageBox.Show(value);} 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的.net动态控件的使用(listview ,treeview,tabControl)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: GB / ISO / 等保 网络安全相关
- 下一篇: 一个长方体玻璃容器从里面量长宽_泰来包装