我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#实现目录跳转(TreeView和SplitContainer)的示例代码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#实现目录跳转(TreeView和SplitContainer)的示例代码

功能目标

使用Treeview控件实现点左边的节点,在右边显示相关的页面

知识点

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控件的详细介绍,可参考另一篇文章

Form.MdiParent 属性

获取或设置此窗体的当前多文档界面 (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属于子窗体。

知识延伸

子窗体和父窗体相互传值

SplitContainer

命名空间: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#实现目录跳转(TreeView和SplitContainer)的示例代码的文章就介绍到这了,更多相关C# 目录跳转内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#实现目录跳转(TreeView和SplitContainer)的示例代码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#实现Word转换RTF的示例代码

这篇文章主要为大家详细介绍了如何利用C#实现Word转换RTF,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
2022-12-21

C语言实现通讯录的示例代码

这篇文章主要为大家详细介绍了如何录音C语言实现一个简单的通讯录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2022-11-13

C#实现批量Word转换Html的示例代码

这篇文章主要为大家详细介绍了如何利用C#批量Word转换Html的功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
2022-12-22

C语言实现常见进制转换的示例代码

生活中最常见的进制是十进制,而有一类编程题会要求将十进制转换为其他进制,本文将主要讲述C语言中常见的几类进制转换问题,希望对大家有所帮助
2023-05-14

Android 实现闪屏页和右上角的倒计时跳转实例代码

以前编程的时候,遇到倒计时的功能时,经常自己去写,但其实Android已经帮封装好了一个倒计时类CountDownTimer,其实是将后台线程的创建和Handler队列封装成为了一个方便的类调用。 闪屏页用到了handler和CountDo
2022-06-06

React实现锚点跳转组件附带吸顶效果的示例代码

这篇文章主要为大家详细介绍了React如何实现移动端锚点跳转组件附带吸顶效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
2023-01-05

基于C语言实现高级通讯录的示例代码

这篇文章主要为大家详细介绍了如何利用C语言实现一个高级通讯录的功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考一下
2023-01-30

C++实现双目立体匹配Census算法的示例代码

这篇文章主要为大家详细介绍了如何利用C++实现双目立体匹配Census算法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2022-11-13

C#wpf使用ffmpeg命令行实现录屏的示例代码

本文主要介绍了C#wpf使用ffmpeg命令行实现录屏的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2022-11-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录