C#设计树形程序界面的方法:创建特殊窗体

news2024/11/18 3:31:06

目录

1.TreeView控件

2.实例 

(1)Resources.Designer.cs

(2)Form1.Designer.cs

(3)Form1.cs

(4)生成效果


        以树形来显示程序的菜单,可以更直观、更快捷地对窗体进行操作,而且树型菜单比菜单栏更加美观实用。

1.TreeView控件

        TreeView控件又称为树控件,它可以为用户显示节点层次结构,而每个节点又可以包含子节点,包含子节点的节点叫父节点,其效果就像在Windows操作系统的Windows资源管理器功能的左窗口中显示文件和文件夹一样。TreeView控件的ExpandAll方法用来展开所有树节点,语法格式如下:

public void ExpandAll()

        TreeView控件经常用来设计Windows窗体的左侧导航菜单。

2.实例 

        本实例在制作以树形显示的程序界面时,主要用TreeView控件及其ExpandAll方法。 

(1)Resources.Designer.cs

//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.42000
//
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

namespace _194.Properties {
    using System;
    
    
    /// <summary>
    ///   一个强类型的资源类,用于查找本地化的字符串等。
    /// </summary>
    // 此类是由 StronglyTypedResourceBuilder
    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
    // (以 /str 作为命令选项),或重新生成 VS 项目。
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {
        
        private static global::System.Resources.ResourceManager resourceMan;
        
        private static global::System.Globalization.CultureInfo resourceCulture;
        
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        
        /// <summary>
        ///   返回此类使用的缓存的 ResourceManager 实例。
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_194.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        
        /// <summary>
        ///   重写当前线程的 CurrentUICulture 属性,对
        ///   使用此强类型资源类的所有资源查找执行重写。
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
        /// </summary>
        internal static System.Drawing.Bitmap 上 {
            get {
                object obj = ResourceManager.GetObject("上", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
        /// </summary>
        internal static System.Drawing.Bitmap 右 {
            get {
                object obj = ResourceManager.GetObject("右", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
    }
}

(2)Form1.Designer.cs

namespace _194
{
    partial class Form1
    {
        /// <summary>
        ///  Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        ///  Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        ///  Required method for Designer support - do not modify
        ///  the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            TreeNode treeNode1 = new TreeNode("企业类型设置");
            TreeNode treeNode2 = new TreeNode("企业性质设置");
            TreeNode treeNode3 = new TreeNode("企业级别设置");
            TreeNode treeNode4 = new TreeNode("企业资信设置");
            TreeNode treeNode5 = new TreeNode("基础信息维护", new TreeNode[] { treeNode1, treeNode2, treeNode3, treeNode4 });
            TreeNode treeNode6 = new TreeNode("客户信息");
            TreeNode treeNode7 = new TreeNode("联系人信息");
            TreeNode treeNode8 = new TreeNode("业务往来");
            TreeNode treeNode9 = new TreeNode("客户信息维护", new TreeNode[] { treeNode6, treeNode7, treeNode8 });
            TreeNode treeNode10 = new TreeNode("客户投诉");
            TreeNode treeNode11 = new TreeNode("客户反馈");
            TreeNode treeNode12 = new TreeNode("客户服务", new TreeNode[] { treeNode10, treeNode11 });
            TreeNode treeNode13 = new TreeNode("联系人信息查询");
            TreeNode treeNode14 = new TreeNode("客户信息查询");
            TreeNode treeNode15 = new TreeNode("客户信息查询", new TreeNode[] { treeNode13, treeNode14 });
            TreeNode treeNode16 = new TreeNode("客户信息报表");
            TreeNode treeNode17 = new TreeNode("业务往来报表");
            TreeNode treeNode18 = new TreeNode("联系人信息表");
            TreeNode treeNode19 = new TreeNode("打印报表", new TreeNode[] { treeNode16, treeNode17, treeNode18 });
            TreeNode treeNode20 = new TreeNode("调用Word");
            TreeNode treeNode21 = new TreeNode("调用EXCEL");
            TreeNode treeNode22 = new TreeNode("辅助工具", new TreeNode[] { treeNode20, treeNode21 });
            menuStrip1 = new MenuStrip();
            toolStripMenuItem2 = new ToolStripMenuItem();
            toolStripMenuItem3 = new ToolStripMenuItem();
            toolStripMenuItem4 = new ToolStripMenuItem();
            toolStripMenuItem1 = new ToolStripMenuItem();
            panel1 = new Panel();
            splitContainer1 = new SplitContainer();
            treeView1 = new TreeView();
            pictureBox1 = new PictureBox();
            menuStrip1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
            splitContainer1.Panel1.SuspendLayout();
            splitContainer1.Panel2.SuspendLayout();
            splitContainer1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
            SuspendLayout();
            // 
            // menuStrip1
            // 
            menuStrip1.Dock = DockStyle.None;
            menuStrip1.Items.AddRange(new ToolStripItem[] { toolStripMenuItem2, toolStripMenuItem3, toolStripMenuItem4, toolStripMenuItem1 });
            menuStrip1.Location = new Point(0, 0);
            menuStrip1.Name = "menuStrip1";
            menuStrip1.Size = new Size(352, 25);
            menuStrip1.TabIndex = 0;
            menuStrip1.Text = "menuStrip1";
            // 
            // toolStripMenuItem2
            // 
            toolStripMenuItem2.Name = "toolStripMenuItem2";
            toolStripMenuItem2.Size = new Size(92, 21);
            toolStripMenuItem2.Text = "客户信息维护";
            // 
            // toolStripMenuItem3
            // 
            toolStripMenuItem3.Name = "toolStripMenuItem3";
            toolStripMenuItem3.Size = new Size(68, 21);
            toolStripMenuItem3.Text = "客户服务";
            // 
            // toolStripMenuItem4
            // 
            toolStripMenuItem4.Name = "toolStripMenuItem4";
            toolStripMenuItem4.Size = new Size(92, 21);
            toolStripMenuItem4.Text = "客户信息查询";
            // 
            // toolStripMenuItem1
            // 
            toolStripMenuItem1.Name = "toolStripMenuItem1";
            toolStripMenuItem1.Size = new Size(92, 21);
            toolStripMenuItem1.Text = "基础信息查询";
            // 
            // panel1
            // 
            panel1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            panel1.BackgroundImage = Properties.Resources.上;
            panel1.BackgroundImageLayout = ImageLayout.Stretch;
            panel1.Location = new Point(0, 28);
            panel1.Name = "panel1";
            panel1.Size = new Size(496, 40);
            panel1.TabIndex = 1;
            // 
            // splitContainer1
            // 
            splitContainer1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
            splitContainer1.Location = new Point(0, 65);
            splitContainer1.Name = "splitContainer1";
            // 
            // splitContainer1.Panel1
            // 
            splitContainer1.Panel1.Controls.Add(treeView1);
            // 
            // splitContainer1.Panel2
            // 
            splitContainer1.Panel2.BackgroundImageLayout = ImageLayout.Stretch;
            splitContainer1.Panel2.Controls.Add(pictureBox1);
            splitContainer1.Size = new Size(496, 282);
            splitContainer1.SplitterDistance = 165;
            splitContainer1.TabIndex = 2;
            // 
            // treeView1
            // 
            treeView1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left;
            treeView1.Location = new Point(0, 0);
            treeView1.Name = "treeView1";
            treeNode1.Name = "节点6";
            treeNode1.Text = "企业类型设置";
            treeNode2.Name = "节点7";
            treeNode2.Text = "企业性质设置";
            treeNode3.Name = "节点8";
            treeNode3.Text = "企业级别设置";
            treeNode4.Name = "节点9";
            treeNode4.Text = "企业资信设置";
            treeNode5.Name = "节点0";
            treeNode5.Text = "基础信息维护";
            treeNode6.Name = "节点10";
            treeNode6.Text = "客户信息";
            treeNode7.Name = "节点11";
            treeNode7.Text = "联系人信息";
            treeNode8.Name = "节点12";
            treeNode8.Text = "业务往来";
            treeNode9.Name = "节点1";
            treeNode9.Text = "客户信息维护";
            treeNode10.Name = "节点13";
            treeNode10.Text = "客户投诉";
            treeNode11.Name = "节点14";
            treeNode11.Text = "客户反馈";
            treeNode12.Name = "节点2";
            treeNode12.Text = "客户服务";
            treeNode13.Name = "节点15";
            treeNode13.Text = "联系人信息查询";
            treeNode14.Name = "节点16";
            treeNode14.Text = "客户信息查询";
            treeNode15.Name = "节点3";
            treeNode15.Text = "客户信息查询";
            treeNode16.Name = "节点17";
            treeNode16.Text = "客户信息报表";
            treeNode17.Name = "节点18";
            treeNode17.Text = "业务往来报表";
            treeNode18.Name = "节点19";
            treeNode18.Text = "联系人信息表";
            treeNode19.Name = "节点4";
            treeNode19.Text = "打印报表";
            treeNode20.Name = "节点20";
            treeNode20.Text = "调用Word";
            treeNode21.Name = "节点21";
            treeNode21.Text = "调用EXCEL";
            treeNode22.Name = "节点5";
            treeNode22.Text = "辅助工具";
            treeView1.Nodes.AddRange(new TreeNode[] { treeNode5, treeNode9, treeNode12, treeNode15, treeNode19, treeNode22 });
            treeView1.Size = new Size(165, 282);
            treeView1.TabIndex = 0;
            // 
            // pictureBox1
            // 
            pictureBox1.BackgroundImage = Properties.Resources.右;
            pictureBox1.BackgroundImageLayout = ImageLayout.Stretch;
            pictureBox1.Dock = DockStyle.Fill;
            pictureBox1.Location = new Point(0, 0);
            pictureBox1.Name = "pictureBox1";
            pictureBox1.Size = new Size(327, 282);
            pictureBox1.TabIndex = 0;
            pictureBox1.TabStop = false;
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(497, 347);
            Controls.Add(splitContainer1);
            Controls.Add(panel1);
            Controls.Add(menuStrip1);
            MainMenuStrip = menuStrip1;
            Name = "Form1";
            Text = "Form1";
            Load += Form1_Load;
            menuStrip1.ResumeLayout(false);
            menuStrip1.PerformLayout();
            splitContainer1.Panel1.ResumeLayout(false);
            splitContainer1.Panel2.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit();
            splitContainer1.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }

        #endregion

        private MenuStrip menuStrip1;
        private ToolStripMenuItem toolStripMenuItem1;
        private ToolStripMenuItem toolStripMenuItem2;
        private ToolStripMenuItem toolStripMenuItem3;
        private ToolStripMenuItem toolStripMenuItem4;
        private Panel panel1;
        private SplitContainer splitContainer1;
        private TreeView treeView1;
        private PictureBox pictureBox1;
    }
}

(3)Form1.cs

namespace _194
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 展开所有节点
        /// </summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            treeView1.ExpandAll();
        }
    }
}

(4)生成效果

 

 

        这是一个缺点,当拖拽窗体放大时,panel2里的图片不能stretch,请网友看到给一个修复的建议吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1619607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 面向对象——5.多态

本章学习链接如下&#xff1a; Python 面向对象——1.基本概念 Python 面向对象——2.类与对象实例属性补充解释&#xff0c;self的作用等 Python 面向对象——3.实例方法&#xff0c;类方法与静态方法 Python 面向对象——4.继承 1.基本概念 多态是面向对象编程&#x…

【智慧园区、低碳园区】工业园区综合能源管理系统解决方案

安科瑞薛瑶瑶18701709087 ◆行业特点 产业园区是国民经济发展的重要载体, 同时也是重点用能企业聚集地。园区面积大&#xff0c;供电距离远&#xff0c;建筑多且分散&#xff0c;用电负荷种类多&#xff0c;用电负荷不均匀&#xff0c;园区配电结构应整体规划&#xff0c;统一…

Xshell7免费版下载及安装(详细教程)

Xshell7免费版下载及安装&#xff08;详细教程&#xff09; 一、下载及安装 1.打开官网下载 https://www.xshell.com/zh/free-for-home-school/ 2.选择合适的下载路径 点击下载按钮 开始下载 3.下载完成后 我们双击打开.exe文件 点击下一步 4.点击我同意 点击下一步 5.选择合…

第九讲 - Java面向对象

第九讲 - Java面向对象 文章目录 第九讲 - Java面向对象1. 类和对象1.1 类和对象的理解1.2 类的定义1.3 对象的使用1.4 学生对象-练习 2. 对象内存图2.1 单个对象内存图2.2 多个对象内存图 3. 成员变量和局部变量3.1 成员变量和局部变量的区别 4. 封装4.1 封装思想4.2 private关…

IIS中搭建.Net Core项目,步骤详解

一、准备服务器 1&#xff09;安装IIS 这个比较简单&#xff0c;百度一下就行 2&#xff09;安装 .NET Core 运行时 下载地址&#xff1a;下载 .NET(Linux、macOS 和 Windows) 因为我是本地开发&#xff0c;所以我下载的是SDK 安装成功之后显示如下&#xff1a; 检查是否安装…

浏览器兼容模式怎么设置?4个提升网页兼容性秘笈分享!

“不知道怎么回事&#xff0c;我打开浏览器的时候总是显示浏览器不兼容&#xff0c;是什么情况呢&#xff1f;我应该怎么操作才能解决这个问题呀&#xff1f;” 浏览器兼容模式是一种使浏览器能够更好地显示网页内容、提高网页加载速度并减少错误的功能。 不同浏览器设置兼容模…

探索HSE化工安全系统在化工生产中的作用

在现代工业化生产中&#xff0c;化工企业扮演着至关重要的角色&#xff0c;但与此同时&#xff0c;化工安全问题也备受关注。为了保障生产环境的安全&#xff0c;HSE化工安全系统应运而生。本文将详细介绍HSE化工安全系统的功能和优势&#xff0c;让您深入了解其在工业生产中的…

ISPLSI1032E-100LT 封装TQFP100 LATTICE/莱迪斯 IC芯片

ISPLSI1032E-100LT 规格信息&#xff1a; 封装:TQFP 逻辑门数量:6000 含铅标准:Lead free RoHS标准:Compliant 产品生命周期:Not Recommended ISPLSI1032E-100LT 是 Lattice Semiconductor 公司生产的一款 Complex Programmable Logic Device (CPLD)&#xff0c;中文称为复…

AIGC技术:行业应用案例与未来可能性深度解析

随着人工智能技术的飞速发展&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;技术正日益成为引领内容创作与智能应用的新引擎。在当下&#xff0c;AIGC技术已经取得了一系列令人瞩目的成果&#xff0c;而在未来&#xff0c;它更将展现出无限的可能性&#xff0c;为人…

FebHost:.DE域名能否用于多个市场的国际网站?

.DE德国域名可用于面向多个市场的国际网站&#xff0c;但重要的是要考虑有效的国际搜索引擎优化的影响和策略。下面介绍在这种情况下如何利用 .DE 域名&#xff1a; 本地信任和信誉&#xff1a; .DE 域名可以向用户和搜索引擎表明&#xff0c;您的网站是为德国市场量身定制的。…

面对亚马逊FBA仓附加费上涨,卖家如何破局前行?

跨境电商的发展势头强劲&#xff0c;不仅为消费者带来了更多元化的购物选择&#xff0c;也为卖家提供了更广阔的市场空间&#xff0c;跨境物流作为连接生产与消费的重要桥梁&#xff0c;其成本对于卖家而言&#xff0c;已成为影响竞争力的关键因素之一。然而&#xff0c;从五月…

嵌入式4-23 C++

值不能改变 语法错误 指向地址不能改变 值和地址都不能改变 值不能改变 地址不能改变 都不能改变

【漏洞复现】卡车卫星定位系统 /user/create接口处存在未授权密码重置漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

Golang | Leetcode Golang题解之第46题全排列

题目&#xff1a; 题解&#xff1a; func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

聚观早报 | 百度地图V20正式发布;OPPO K12细节曝光

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 4月24日消息 百度地图V20正式发布 OPPO K12细节曝光 Meta宣布开放VR系统 三星 Galaxy Ring提供多种尺寸 Redmi …

计算机网络学习笔记(七):网络安全

目录 7.1 网络安全问题概述 7.1.1 计算机网络面临的安全性威胁 7.1.2 安全的内容 7.1.3 数据加密模型 7.2 两类密码体制 7.2.1 对称密钥密码体制&#xff08;对称加密、加密密钥和解密密钥相同&#xff09; 7.2.2 公钥/公开密钥密码体制&#xff08;非对称加密、加密密钥…

数据可视化———Tableau

基本认识&#xff1a; 维度&#xff1a;定性—字符串文本&#xff0c;日期和日期时间等等 度量&#xff1a;定量—连续值&#xff0c;一般属于数值 数据类型&#xff1a; 数值 日期/日期时间 字符串 布尔值 地理值 运算符 算数运算符&#xff1a;加减乘除,%取余&#xff0c;…

如何在Facebook上发布广告?

在广告管理工具中创建广告 创建广告系列和广告组。在广告名称文本框中输入描述性名称。选择代表您业务的Facebook 公共主页和Instagram 帐户。 所有广告都必须具有关联的Facebook 公共主页。选择广告格式。 选择素材。 您可能还会看到其他选项&#xff0c;具体取决于您先前所做…

论文| Visual Place Recognition: A Tutorial

本文是有关 VPR 的第一篇教程文章&#xff08;提供每个功能模块的开源代码&#xff09;。涵盖了 VPR 问题的表述、通用算法pipeline、评估方法、主要挑战及其解决方法等主题。

电商API采集的优势、使用场景,如何实时获取主流电商API数据

电商API采集简介 随着电子商务行业的快速发展&#xff0c;电商API采集成为了许多电商平台和企业的重要工具。API&#xff08;应用程序接口&#xff09;是不同软件系统之间进行数据交互的协议&#xff0c;通过API采集&#xff0c;电商平台可以方便地获取其他电商平台的商品信息…