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