欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C#如何實(shí)現(xiàn)樹形圖列表

 更新時間:2022年12月12日 16:49:26   作者:芝麻粒兒  
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)樹形圖列表,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以了解一下

實(shí)踐過程

效果

代碼

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)識,有子項(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)識(是否可用)</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)識,不顯示相應(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)識,不顯示相應(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)識,顯示相應(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)識,有子項(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)識</param>
    /// <param FName="string">名稱</param>
    public void frm_show(int n, string FName)
    {
        switch (n) //通過標(biāo)識調(diào)用各子窗體
        {
            case 0: break;
            case 1:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 2:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 3:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 4:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 5:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 6:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 7:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 8:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 9:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 10:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 11:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 12:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 13:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 14:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 15:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 16:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 17:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 18:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 19:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                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(); //實(shí)例化一個窗體
                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í)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 28:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 29:
            {
                Form2 fp = new Form2(); //實(shí)例化一個窗體
                fp.Text = FName; //設(shè)置窗體的名稱
                fp.ShowDialog(); //用模試對話框打開窗體
                fp.Dispose(); //釋放窗體的所有資原
                break;
            }
            case 30:
            {
                //打開幫助對話框
                MessageBox.Show("\t你可以到明日科技網(wǎng)站\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);
    }
}

到此這篇關(guān)于詳解C#如何實(shí)現(xiàn)樹形圖列表的文章就介紹到這了,更多相關(guān)C#樹形圖列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c#系列 list詳情

    c#系列 list詳情

    這篇文章主要介紹了c#系列 list,list 本質(zhì)是一個數(shù)組,。就跟我們操作系統(tǒng)一樣,提前申請內(nèi)存大小。所以我們程序一般都有一個申請內(nèi)存,實(shí)際使用內(nèi)存,內(nèi)存碎片這幾個概念,下面?zhèn)z看文章詳細(xì)內(nèi)容吧
    2021-10-10
  • 常用類之TCP連接類-socket編程

    常用類之TCP連接類-socket編程

    常用類之TCP連接類-socket編程...
    2007-03-03
  • C#實(shí)現(xiàn)的WINDOWS登錄功能示例

    C#實(shí)現(xiàn)的WINDOWS登錄功能示例

    這篇文章主要介紹了C#實(shí)現(xiàn)的WINDOWS登錄功能,結(jié)合實(shí)例形式分析了簡單的Windows圖形化登陸功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • C# 方法的遞歸調(diào)用實(shí)現(xiàn)

    C# 方法的遞歸調(diào)用實(shí)現(xiàn)

    在C#中,遞歸調(diào)用是指一個方法調(diào)用自身的過程,本文主要介紹了C# 方法的遞歸調(diào)用實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 如何清空文件夾里面的所有文件和文件夾

    如何清空文件夾里面的所有文件和文件夾

    以下是對c#中清空文件夾里面的所有文件和文件夾的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C#畫筆Pen用法實(shí)例

    C#畫筆Pen用法實(shí)例

    這篇文章主要介紹了C#畫筆Pen用法,實(shí)例分析了畫筆Pen繪制圖形的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 提權(quán)函數(shù)之RtlAdjustPrivilege()使用說明

    提權(quán)函數(shù)之RtlAdjustPrivilege()使用說明

    RtlAdjustPrivilege() 這玩意是在 NTDLL.DLL 里的一個不為人知的函數(shù),MS沒有公開,原因就是這玩意實(shí)在是太NB了,以至于不需要任何其他函數(shù)的幫助,僅憑這一個函數(shù)就可以獲得進(jìn)程ACL的任意權(quán)限!
    2011-06-06
  • C# 服務(wù)器發(fā)送郵件失敗實(shí)例分析

    C# 服務(wù)器發(fā)送郵件失敗實(shí)例分析

    在本篇文章里小編給大家?guī)硪黄P(guān)于C# 服務(wù)器發(fā)送郵件失敗實(shí)例內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • 詳解C# 中的正則表達(dá)式運(yùn)用

    詳解C# 中的正則表達(dá)式運(yùn)用

    這篇文章主要介紹了C# 中的正則表達(dá)式運(yùn)用的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C#的十種語法糖介紹

    C#的十種語法糖介紹

    這篇文章介紹了C#的十種語法糖,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02

最新評論