溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫

發(fā)布時(shí)間:2022-07-29 13:46:15 來源:億速云 閱讀:163 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫”吧!

    功能目標(biāo)

    使用Treeview控件實(shí)現(xiàn)點(diǎn)左邊的節(jié)點(diǎn),在右邊顯示相關(guān)的頁面

    知識(shí)點(diǎn)

    Treeview

    命名空間:System.Windows.Forms
    程序集:System.Windows.Forms.dll

    顯示標(biāo)記項(xiàng)的分層集合,每個(gè)標(biāo)記項(xiàng)用一個(gè) TreeNode 來表示。

    private void InitializeTreeView()
    {
        treeView1.BeginUpdate();
        treeView1.Nodes.Add("Parent");
        treeView1.Nodes[0].Nodes.Add("child1");
        treeView1.Nodes[0].Nodes.Add("child2");
        treeView1.Nodes[0].Nodes[1].Nodes.Add("Grandchild");
        treeView1.Nodes[0].Nodes[1].Nodes[0].Nodes.Add("Great Grandchild");
        treeView1.EndUpdate();
    }

    對(duì)應(yīng)treeview控件的詳細(xì)介紹,可參考另一篇文章

    Form.MdiParent 屬性

    獲取或設(shè)置此窗體的當(dāng)前多文檔界面 (MDI) 父窗體。

    Windows 窗體應(yīng)用程序中,經(jīng)常會(huì)在一個(gè)窗體中打開另一個(gè)窗體, 通過窗體上的不同菜單選擇不同的操作,這種在一個(gè)窗體中打開另一個(gè)窗體的方式可以通過設(shè)置 MDI 窗體的方式實(shí)現(xiàn)

    MDI (Multiple Document Interface) 窗體被稱為多文檔窗體,它是很多 Windows 應(yīng)用程序中常用的界面設(shè)計(jì)

    MDI 窗體的設(shè)置并不復(fù)雜,只需要將窗體的屬性 IsMdiContainer 設(shè)置為 True 即可。

    this.IsMdiContainer = True;

    C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫

    案例介紹

    創(chuàng)建 MDI 窗體,并在該窗體上設(shè)置菜單,包括打開文件、保存文件兩個(gè)菜單項(xiàng)。

    1.使用控件ContentMenuStrip,創(chuàng)建兩個(gè)子菜單

    C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫

    2.在Form主窗體的ContentMenuStrip屬性關(guān)聯(lián)此控件,并在屬性isMdiContainer修改為True.

    3.子菜單事件代碼編寫。在每個(gè)子菜單的click事件中編寫如下代碼

    //保存文件
                SaveFile sf = new SaveFile();
                sf.FormBorderStyle = FormBorderStyle.None;
                sf.MdiParent = this;
                sf.Show();
    //打開文件
                OpenFile OpF = new OpenFile();
                OpF.FormBorderStyle = FormBorderStyle.None;
                OpF.MdiParent = this;
                OpF.Show();

    遺留點(diǎn)

    問題1:在MdiParent窗體調(diào)用子窗體時(shí),如果返回父窗體,不知如何返回

    問題2:嵌套系列,A作為父窗體,把B窗體作為子窗體,但B和C的關(guān)系,B相對(duì)于C屬于父窗體,C屬于子窗體。

    知識(shí)延伸

    子窗體和父窗體相互傳值

    SplitContainer

    命名空間:System.Windows.Forms
    程序集:System.Windows.Forms.dll

    表示一個(gè)由可移動(dòng)條組成的控件,該可移動(dòng)條將容器的顯示區(qū)域分成兩個(gè)大小可調(diào)的面板。

    操作步驟

    畫面組態(tài)

    • 添加Treeview和splitcontainer控件。

    • 創(chuàng)建四個(gè)畫面,四個(gè)畫面的name屬性分別為:xiaomi、huawei、BWM、benchi;

    C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫

    代碼編寫

    目錄樹代碼編寫,創(chuàng)建兩個(gè)父節(jié)點(diǎn),汽車和手機(jī),其中汽車父節(jié)點(diǎn)下面有奔馳和寶馬兩個(gè)子節(jié)點(diǎn)。手機(jī)父節(jié)點(diǎn)下面有小米和華為兩個(gè)子節(jié)點(diǎn)。

    代碼觸發(fā)事件為窗體的加載(Load)

    private void Form1_Load(object sender, EventArgs e)
            {
                TreeNode tn1 = new TreeNode("手機(jī)");
                TreeNode tn2 = new TreeNode("汽車");
    
                tn1.Nodes.Add("小米");
                tn1.Nodes.Add("華為");
                tn2.Nodes.Add("寶馬");
                tn2.Nodes.Add("奔馳");
    
                treeView1.Nodes.Add(tn1);
                treeView1.Nodes.Add(tn2);
            }

    點(diǎn)擊目錄樹上子節(jié)點(diǎn),獲取Treeview控件的selectnode屬性的text文本值,根據(jù)text文本值的不同,進(jìn)行畫面切換其中text文本代表節(jié)點(diǎn)的內(nèi)容。畫面進(jìn)行切換,畫面顯示則利用splitcontainer控件。

     private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            {
                switch (treeView1.SelectedNode.Text)
                {
                    case "小米":
                        splitContainer1.Panel2.Controls.Clear();
                        xiaomi xm = new xiaomi();
                        //xm.MdiParent = this;
                        xm.Dock = DockStyle.Fill;
                        xm.FormBorderStyle = FormBorderStyle.None;
                        xm.TopLevel = false;
                        xm.Parent = this.splitContainer1.Panel2;
                        xm.Show();
                        break;
                    case "華為":
                        splitContainer1.Panel2.Controls.Clear();
                        huawei hw = new huawei();
                        hw.Dock = DockStyle.Fill;
                        hw.FormBorderStyle = FormBorderStyle.None;
                        hw.TopLevel = false;
                        hw.Parent = this.splitContainer1.Panel2;
                        hw.Show();
                        break;
                    case "寶馬":
                        splitContainer1.Panel2.Controls.Clear();
                        BWM bwm = new BWM();
                        bwm.Dock = DockStyle.Fill;
                        bwm.FormBorderStyle = FormBorderStyle.None;
                        bwm.TopLevel = false;
                        bwm.Parent = this.splitContainer1.Panel2;
                        bwm.Show();
                        break;
                    case "奔馳":
                        splitContainer1.Panel2.Controls.Clear();
                        benchi bz = new benchi();
                        bz.Dock = DockStyle.Fill;
                        bz.FormBorderStyle = FormBorderStyle.None;
                        bz.TopLevel = false;
                        bz.Parent = this.splitContainer1.Panel2;
                        bz.Show();
                        break;
    
                }
                
                
            }

    動(dòng)畫演示

    C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫

    到此,相信大家對(duì)“C#實(shí)現(xiàn)目錄跳轉(zhuǎn)的代碼怎么寫”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

    向AI問一下細(xì)節(jié)

    免責(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)容。

    AI