您好,登錄后才能下訂單哦!
這篇“C#怎么實(shí)現(xiàn)樹形圖列表”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C#怎么實(shí)現(xiàn)樹形圖列表”文章吧。
效果
代碼
public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region 將MenuStrip控件中的信息添加到TreeView控件中 /// <summary> /// 將MenuStrip控件中的首行命令項(xiàng)添加到TreeView控件中 /// </summary> /// <param treeV="TreeView">TreeView控件</param> /// <param MenuS="MenuStrip">MenuStrip控件</param> public void GetMenu(TreeView treeV, MenuStrip MenuS) { bool Var_Bool = true; for (int i = 0; i < MenuS.Items.Count; i++) //遍歷MenuStrip組件中的一級菜單項(xiàng) { //將一級菜單項(xiàng)的名稱添加到TreeView組件的根節(jié)點(diǎn)中,并設(shè)置當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)newNode1 TreeNode newNode1 = treeV.Nodes.Add(MenuS.Items[i].Text); if (MenuS.Items[i].Enabled == false) //判斷當(dāng)前項(xiàng)是否為可用 { newNode1.ForeColor = Color.Silver; //改變樹節(jié)點(diǎn)的字體顏色為不可用色 Var_Bool = false; } else { newNode1.ForeColor = Color.Black; //改變樹節(jié)點(diǎn)的字體顏色為可用色 Var_Bool = true; } newNode1.Tag = 0; //標(biāo)識(shí),有子項(xiàng)的命令項(xiàng) //將當(dāng)前菜單項(xiàng)的所有相關(guān)信息存入到ToolStripDropDownItem對象中 ToolStripDropDownItem newmenu = (ToolStripDropDownItem) MenuS.Items[i]; GetCavernMenu(newNode1, newmenu, Var_Bool); //添加多層命令項(xiàng) } } /// <summary> /// 將MenuStrip控件中的多層命今項(xiàng)添加到TreeView控件中 /// </summary> /// <param newNodeA="TreeNode">TreeNode對象</param> /// <param newmenuA="ToolStripDropDownItem">ToolStripDropDownItem對象</param> /// <param BL="bool">標(biāo)識(shí)(是否可用)</param> public void GetCavernMenu(TreeNode newNodeA, ToolStripDropDownItem newmenuA, bool BL) { bool Var_Bool = true; if (newmenuA.HasDropDownItems && newmenuA.DropDownItems.Count > 0) for (int j = 0; j < newmenuA.DropDownItems.Count; j++) //遍歷二級菜單項(xiàng) { //將二級菜單名稱添加到TreeView組件的子節(jié)點(diǎn)newNode1中,并設(shè)置當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)newNode2 TreeNode newNodeB = newNodeA.Nodes.Add(newmenuA.DropDownItems[j].Text); Var_Bool = true; if (BL == false) //判斷當(dāng)前命令項(xiàng)的上一級命令是否可用 { newNodeB.ForeColor = Color.Silver; //設(shè)置當(dāng)前命令項(xiàng)的字體顏色為不可用色 newNodeB.Tag = 0; //標(biāo)識(shí),不顯示相應(yīng)的窗體 Var_Bool = false; } else { if (newmenuA.DropDownItems[j].Enabled == false) //判斷當(dāng)前命令項(xiàng)是否為可用 { newNodeB.ForeColor = Color.Silver; //設(shè)置當(dāng)前命令項(xiàng)的字體顏色為不可用色 newNodeB.Tag = 0; //標(biāo)識(shí),不顯示相應(yīng)的窗體 Var_Bool = false; } else { newNodeA.ForeColor = Color.Black; //設(shè)置當(dāng)前命令項(xiàng)的字體顏色為可用色 newNodeB.Tag = int.Parse(newmenuA.DropDownItems[j].Tag.ToString()); //標(biāo)識(shí),顯示相應(yīng)的窗體 } } //將當(dāng)前菜單項(xiàng)的所有相關(guān)信息存入到ToolStripDropDownItem對象中 ToolStripDropDownItem newmenuB = (ToolStripDropDownItem) newmenuA.DropDownItems[j]; if (newmenuB.HasDropDownItems && newmenuA.DropDownItems.Count > 0) //如果當(dāng)前命令項(xiàng)有子項(xiàng) { newNodeB.Tag = 0; //標(biāo)識(shí),有子項(xiàng)的命令項(xiàng) GetCavernMenu(newNodeB, newmenuB, Var_Bool); //調(diào)用遞歸方法 } } } #endregion #region 打開MenuStrip控件或TreeView控件相應(yīng)的窗體 /// <summary> /// 打開MenuStrip控件或TreeView控件相應(yīng)的窗體 /// </summary> /// <param n="int">標(biāo)識(shí)</param> /// <param FName="string">名稱</param> public void frm_show(int n, string FName) { switch (n) //通過標(biāo)識(shí)調(diào)用各子窗體 { case 0: break; case 1: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 2: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 3: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 4: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 5: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 6: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 7: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 8: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 9: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 10: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 11: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 12: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 13: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 14: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 15: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 16: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 17: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 18: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 19: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 21: { //打開記事本 System.Diagnostics.Process.Start("notepad.exe"); break; } case 22: { //打開計(jì)算器 System.Diagnostics.Process.Start("calc.exe"); break; } case 23: { //打開WORD文檔 System.Diagnostics.Process.Start("WINWORD.EXE"); break; } case 24: { //打開EXCEL文件 System.Diagnostics.Process.Start("EXCEL.EXE"); break; } case 25: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 26: { if (MessageBox.Show("確認(rèn)退出系統(tǒng)嗎?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) Application.Exit(); //關(guān)閉當(dāng)前工程 break; } case 27: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 28: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 29: { Form2 fp = new Form2(); //實(shí)例化一個(gè)窗體 fp.Text = FName; //設(shè)置窗體的名稱 fp.ShowDialog(); //用模試對話框打開窗體 fp.Dispose(); //釋放窗體的所有資原 break; } case 30: { //打開幫助對話框 MessageBox.Show("\t你可以到明日科技網(wǎng)站\t\n\n\t 得到你想知道的\n\t 謝謝使用?。?quot;); break; } } } #endregion private void Form1_Load(object sender, EventArgs e) { Frm_Logon F_Logon = new Frm_Logon(); if (F_Logon.ShowDialog() == DialogResult.OK) { GetMenu(treeView1, menuStrip1); //將menuStrip1控件中的信息添加到treeView1控件中 } } private void ToolStrip_1_Click(object sender, EventArgs e) { frm_show(Convert.ToInt16(((ToolStripMenuItem) sender).Tag.ToString()), ((ToolStripMenuItem) sender).Text); } private void toolStripButton1_Click(object sender, EventArgs e) { frm_show(Convert.ToInt16(((ToolStripButton) sender).Tag.ToString()), ((ToolStripButton) sender).Text); } private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { frm_show(Convert.ToInt16(e.Node.Tag.ToString()), e.Node.Text); } }
以上就是關(guān)于“C#怎么實(shí)現(xiàn)樹形圖列表”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。