【WinForm详细教程六】WinForm中的GroupBox和Panel 、TabControl 、SplitContainer控件

本文主要是介绍【WinForm详细教程六】WinForm中的GroupBox和Panel 、TabControl 、SplitContainer控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1.GroupBox和Panel
    • 2.TabControl
    • 3.SplitContainer

1.GroupBox和Panel

GroupBox:是一个分组容器,提供一个框架将相关的控件组织在一起,它有标题、边框,但没有滚动条。

Panel:也是一个容器控件,用来集中显示和管理其他控件。它没有标题,有可选的边框,可以设置滚动条。

共同点:都是容器控件,可以将其他控件放入其中,实现集中管理。拖动容器时,其中的控件会一起移动。在布局时,通常用来进行分组,一般不会在这两个控件上注册事件。

代码示例

namespace WinFormsTest
{public partial class frmGroupBox_Panel : Form{public frmGroupBox_Panel(){InitializeComponent();}private void frmGroupBox_Panel_Load(object sender, EventArgs e){// 创建一个GroupBoxGroupBox groupBox = new GroupBox();groupBox.Text = "用户信息";groupBox.Location = new Point(10, 10);groupBox.Size = new Size(300, 200);this.Controls.Add(groupBox);// 在GroupBox中添加Label和TextBoxLabel nameLabel = new Label();nameLabel.Text = "姓名:";nameLabel.Location = new Point(10, 30);groupBox.Controls.Add(nameLabel);TextBox nameTextBox = new TextBox();nameTextBox.Location = new Point(120, 30);groupBox.Controls.Add(nameTextBox);// 创建一个PanelPanel panel = new Panel();panel.Location = new Point(320, 10);panel.Size = new Size(300, 200);this.Controls.Add(panel);// 在Panel中添加Label和TextBoxLabel emailLabel = new Label();emailLabel.Text = "邮箱:";emailLabel.Location = new Point(10, 30);panel.Controls.Add(emailLabel);TextBox emailTextBox = new TextBox();emailTextBox.Location = new Point(120, 30);panel.Controls.Add(emailTextBox);}}
}

在这里插入图片描述

2.TabControl

TabControl:是一个用于管理TabPages集合的容器控件,可以将多个TabPages分组显示在不同的选项卡中,每个TabPage是一个容器控件,可放置其他控件。

属性:

  • MultiLine:是否允许多行显示选项卡。
  • TabPages:获取TabControl中的选项卡集合。
  • Alignment:获取或设置选项卡的对齐方式。
  • Appearance:获取或设置选项卡的外观样式。
  • ImageList:获取或设置与选项卡关联的图像列表。

事件:

  • SelectedIndexChanged:当切换选项卡时发生。

代码示例:

namespace WinFormsTest
{public partial class frmTabControl : Form{public frmTabControl(){InitializeComponent();}private void frmTabControl_Load(object sender, EventArgs e){// 创建一个TabControlTabControl tabControl = new TabControl();tabControl.Location = new Point(10, 10);tabControl.Size = new Size(400, 300);this.Controls.Add(tabControl);// 创建第一个TabPageTabPage tabPage1 = new TabPage();tabPage1.Text = "页面1";tabControl.TabPages.Add(tabPage1);// 在第一个TabPage中添加控件Label label1 = new Label();label1.Text = "这是第一页";label1.Location = new Point(10, 10);tabPage1.Controls.Add(label1);// 创建第二个TabPageTabPage tabPage2 = new TabPage();tabPage2.Text = "页面2";tabControl.TabPages.Add(tabPage2);// 在第二个TabPage中添加控件Label label2 = new Label();label2.Text = "这是第二页";label2.Location = new Point(10, 10);tabPage2.Controls.Add(label2);// 添加选项卡切换事件tabControl.SelectedIndexChanged += TabControl_SelectedIndexChanged;}private void TabControl_SelectedIndexChanged(object sender, EventArgs e){TabControl tabControl = sender as TabControl;MessageBox.Show("切换到了" + tabControl.SelectedTab.Text);}}
}

动画66

3.SplitContainer

SplitContainer控件是一个用于将页面拆分成两个大小可调整的区域的容器控件,中间有一个拆分条,通过拖动拆分条来调整左右或上下区域的大小。

在这里插入图片描述

属性:

  • FixedPanel:指定在调整控件大小时,某个面板的宽度或高度保持不变。
  • Dock:控件的停靠方式,默认值为Fill。
  • IsSplitterFixed:指定拆分条是否固定,如果为true,则拆分条不能被拖动。
  • Orientation:指定拆分器是水平的还是垂直的,可选值为Horizontal或Vertical。
  • Panel1、Panel2:获取SplitContainer控件的两个面板。
  • SplitterDistance:指定拆分条与左边或上边的距离,单位为像素。
  • SplitterWidth:指定拆分条的宽度或高度,单位为像素。
  • SplitterIncrement:指定拆分条移动时的增量,单位为像素。

代码示例

namespace WinFormsTest
{public partial class frmSplitContainer : Form{public frmSplitContainer(){InitializeComponent();}private void frmSplitContainer_Load(object sender, EventArgs e){// 创建一个SplitContainer控件SplitContainer splitContainer1 = new SplitContainer();splitContainer1.Location = new Point(10, 10);splitContainer1.Size = new Size(400, 300);this.Controls.Add(splitContainer1);// 设置SplitContainer1的属性splitContainer1.FixedPanel = FixedPanel.Panel1;splitContainer1.Dock = DockStyle.Fill;splitContainer1.IsSplitterFixed = false;splitContainer1.Orientation = Orientation.Vertical;splitContainer1.SplitterDistance = 150;splitContainer1.SplitterWidth = 5;splitContainer1.SplitterIncrement = 10;// 在SplitContainer1的Panel1中添加一个SplitContainer控件SplitContainer splitContainer2 = new SplitContainer();splitContainer2.Location = new Point(0, 0);splitContainer2.Size = new Size(150, 300);splitContainer1.Panel1.Controls.Add(splitContainer2); // 将SplitContainer2控件添加到SplitContainer1的Panel1中// 设置SplitContainer2的属性splitContainer2.FixedPanel = FixedPanel.Panel2;splitContainer2.Dock = DockStyle.Fill;splitContainer2.IsSplitterFixed = false;splitContainer2.Orientation = Orientation.Horizontal;splitContainer2.SplitterDistance = 150;splitContainer2.SplitterWidth = 5;splitContainer2.SplitterIncrement = 10;// 在SplitContainer1的Panel2中添加控件Label label1 = new Label();label1.Text = "这是右边的面板";label1.Location = new Point(10, 10);splitContainer1.Panel2.Controls.Add(label1);// 在SplitContainer2的Panel1中添加控件Label label2 = new Label();label2.Text = "这是左上的面板";label2.Location = new Point(10, 10);splitContainer2.Panel1.Controls.Add(label2);// 在SplitContainer2的Panel2中添加控件Label label3 = new Label();label3.Text = "这是左下的面板";label3.Location = new Point(10, 10);splitContainer2.Panel2.Controls.Add(label3);// 添加 SplitterPaint 事件处理器splitContainer1.Paint += (sender, e) =>{// 绘制边界框Rectangle rect = splitContainer1.SplitterRectangle;using (Pen pen = new Pen(Color.Red, 2))  // 创建一个红色的画笔,线宽为2{e.Graphics.DrawRectangle(pen, rect);}};// 添加 SplitterPaint 事件处理器splitContainer2.Paint += (sender, e) =>{// 绘制边界框Rectangle rect = splitContainer2.SplitterRectangle;using (Pen pen = new Pen(Color.Green, 2))  // 创建一个红色的画笔,线宽为2{e.Graphics.DrawRectangle(pen, rect);}};}}
}

动画77

精彩推荐:
【C#进阶一】C#中的数组(Array)、集合(ArrayList,Queue,Stack, HashList)、List<T>、字典(Dictionary<K,T>)和双向链表LinkedList
【C#进阶八】C#中的序列化与反序列化下(二进制序列化、XML序列化及JSON序列化)

【C#进阶】C#语法中一些常用知识点总结
【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox
【WinForm详细教程三】WinForm中的NumericUpDown、PictureBox、RichTextBox及三种Timer控件
【WinForm详细教程四】WinForm中的ProgressBar 、ImageList和ListView控件

【C#进阶】C#中的委托、事件、回调函数、匿名函数和lambda表达式
希望有所帮助,同时欢迎关注我,后面将更新更多相关内容!

这篇关于【WinForm详细教程六】WinForm中的GroupBox和Panel 、TabControl 、SplitContainer控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关