您好,登錄后才能下訂單哦!
本篇內容主要講解“C#實現目錄跳轉的代碼怎么寫”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#實現目錄跳轉的代碼怎么寫”吧!
使用Treeview控件實現點左邊的節點,在右邊顯示相關的頁面
命名空間:System.Windows.Forms
程序集:System.Windows.Forms.dll
顯示標記項的分層集合,每個標記項用一個 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(); }
對應treeview控件的詳細介紹,可參考另一篇文章
獲取或設置此窗體的當前多文檔界面 (MDI) 父窗體。
Windows 窗體應用程序中,經常會在一個窗體中打開另一個窗體, 通過窗體上的不同菜單選擇不同的操作,這種在一個窗體中打開另一個窗體的方式可以通過設置 MDI 窗體的方式實現
MDI (Multiple Document Interface) 窗體被稱為多文檔窗體,它是很多 Windows 應用程序中常用的界面設計
MDI 窗體的設置并不復雜,只需要將窗體的屬性 IsMdiContainer 設置為 True 即可。
this.IsMdiContainer = True;
案例介紹
創建 MDI 窗體,并在該窗體上設置菜單,包括打開文件、保存文件兩個菜單項。
1.使用控件ContentMenuStrip,創建兩個子菜單
2.在Form主窗體的ContentMenuStrip屬性關聯此控件,并在屬性isMdiContainer修改為True.
3.子菜單事件代碼編寫。在每個子菜單的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();
遺留點
問題1:在MdiParent窗體調用子窗體時,如果返回父窗體,不知如何返回
問題2:嵌套系列,A作為父窗體,把B窗體作為子窗體,但B和C的關系,B相對于C屬于父窗體,C屬于子窗體。
知識延伸
子窗體和父窗體相互傳值
命名空間:System.Windows.Forms
程序集:System.Windows.Forms.dll
表示一個由可移動條組成的控件,該可移動條將容器的顯示區域分成兩個大小可調的面板。
畫面組態
添加Treeview和splitcontainer控件。
創建四個畫面,四個畫面的name屬性分別為:xiaomi、huawei、BWM、benchi;
代碼編寫
目錄樹代碼編寫,創建兩個父節點,汽車和手機,其中汽車父節點下面有奔馳和寶馬兩個子節點。手機父節點下面有小米和華為兩個子節點。
代碼觸發事件為窗體的加載(Load)
private void Form1_Load(object sender, EventArgs e) { TreeNode tn1 = new TreeNode("手機"); TreeNode tn2 = new TreeNode("汽車"); tn1.Nodes.Add("小米"); tn1.Nodes.Add("華為"); tn2.Nodes.Add("寶馬"); tn2.Nodes.Add("奔馳"); treeView1.Nodes.Add(tn1); treeView1.Nodes.Add(tn2); }
點擊目錄樹上子節點,獲取Treeview控件的selectnode屬性的text文本值,根據text文本值的不同,進行畫面切換其中text文本代表節點的內容。畫面進行切換,畫面顯示則利用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; } }
動畫演示
到此,相信大家對“C#實現目錄跳轉的代碼怎么寫”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。