学习Winform分组类控件(Panel、groupBox、TabControl)
作者:丿木呈广予口贝 发布时间:2021-10-09 17:41:11
分组类控件主要包括容器控件(Panel),分组框控件(groupBox)和选项卡控件(TabControl)等控件。
一、Panel控件
Panel控件是由System.Windows.Forms.Panel类提供的,主要作用就是将其他控件组合一起放在一个面板上,使这些控件更容易管理。当Panel控件面板上要显示过多的控件时,可设置AutoScroll属性为true。
Panel控件在默认情况下不显示边框,如把BorderStyle属性设置为不是none的其他值,就可以使用面板可视化地组合相关的控件。
实例:演示Panel控件的BorderStyle属性和AutoScroll属性
(1)在窗体中添加一个Panel控件,设置AutoScroll属性为true,设置BorderStyle属性为Fixed3D,添加一个Button控件和一个ListBox控件,设置Button控件的Text属性为“增加”。
(2)双击Button控件生成Click事件,在Click事件中完成向ListBox控件添加一个项目并且使其高度增加20,代码为:
<span style="font-size:18px;"> private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add("子项");//增加子项
listBox1.Height = listBox1.Height + 20;//增加高度
}</span>
完整的窗体代码为:
<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add("子项");//增加子项
listBox1.Height = listBox1.Height + 20;//增加高度
}
}
}
</span>
运行窗体然后多次点击增加按钮的结果为:
二、GroupBox控件
GroupBox控件是由System.Windows.Forms.GroupBox类提供的,主要作用是为其他控件提供可识别的分组,通常,使用分组框按功能细分窗体。
实例:演示GroupBox控件的使用
在窗体上添加两个GroupBox控件gpbSystem和gpbClass,设置gpbSystem控件的Text属性为系别,并放置两个RadioButton控件,分别设置它们的Text属性为“计算机”和“外语系”。同样设置gpbClass的Text属性为班级,并放置两个RadioButton控件,分别设置它们的Text属性为“一班”和“二班”。
运行窗体的结果为:
三、TabControl控件
TabControl控件是由System.Windows.Forms.TabControl类提供的,作用就是将相关的组件组合到一系列选项卡页面上。TabControl控件管理TabPages集合,TabControl控件的MultiLine属性用来设置是否显示多行选项卡选。如果Multiline属性设置为false,而有多个选项卡不能一次显示出来,就提供组箭头查看剩余的选项卡。TabControl控件的Appearance属性是指示选项卡是挥之成按钮还是绘制成常规选项卡,该属性有三个值分别是Normal(绘制成常规选项),Buttons(绘制成常规按钮)和FlatButton(绘制成平滑按钮)。
把光标放在TabControl控件上点击,可通过【增加选项卡】或选择【移除选项卡】命令来添加和删除TabPages集合,也可通过TabControl控件TabPages属性来添加和删除TabPages集合,TabPages的Text属性是用来设置选项卡上显示的内容。而SelectedTab属性可以确定当前的选项卡。每次选择新选项卡时,救护触发SelectedIndexChanged事件,通过SelectedIndex属性和SelectedTab属性确认当前选择,就可以根据选项卡进行待定的处理。
实例:演示TabControl控件的使用
(1)在窗体上添加一个TabControl控件并右击,选择【增加选项卡】命令,添加一个选项卡TabPage1,重复操作再添加个TabPage2,在TabPage1中提添加一个Button控件,更改TabPage1的Text属性为“选项一”,在TabPage2中添加一个TextBox控件,更改TabPage2的Text属性为“选项二”。
(2)选择TabControl控件,在事件中找到SelectedindexChanged事件,双击后面的空格,生成SelectedIndexChanged事件,通过MessageBox的Show方法显示TabControl控件所选项的TabPages的标题和索引,代码为:
<span style="font-size:18px;"> private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("你单击了"+tabControl1.SelectedTab.Text
//取消单击的选项卡标题
+"它的索引是"+tabControl1.SelectedIndex.ToString());//取消单击的选项卡索引
}</span>
完整的窗体代码为:
<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("你单击了"+tabControl1.SelectedTab.Text
//取消单击的选项卡标题
+"它的索引是"+tabControl1.SelectedIndex.ToString());//取消单击的选项卡索引
}
}
}
</span>
依次单击选项卡的运行结果为:


猜你喜欢
- 比如定义了一个错误的枚举类型public enum eErrorDetailCode : int &nbs
- 一、简述效果:实现功能:长按Button时改变Button显示文字,弹出Dialog(动态更新音量),动态生成录音文件,开始录音;监听手指动
- 一篇小白也能看懂的查找游戏物体的方式解析 – Unity 之 查找物体的几种方式。本文通过实际测试得出使用结论,大家进行简单记录,在使用时想
- 导出Excel的框架有很多种,POI相对来说比较老了,很多Excel框架底层都是POI、有EasyPoi、EasyExcel、包括Hutoo
- 带着问题 往下看 (namesrv)我们在写组件的时候 怎么管理version如果现在让你 维护一个 各个jar包公用的属性System.e
- 通过本文你可以用非常简短的代码替代业务逻辑中的判null校验,并且很容易的在出现空指针的时候进行打日志或其他操作。注:如果对Java8新特性
- 首先说一下最近自己遇到的一个坑:@Transactionalservice A(){try{insert();serviceB.update
- C#中的string是比特殊的类,说引用类型,但不存在堆里面,而且String str=new String("HelloWorl
- C# 连接海康威视/// <summary> /// 海康威视SDK ///
- 本文实例讲述了C#使用winform简单导出Excel的方法。分享给大家供大家参考,具体如下:using Excel;在项目中引入Excel
- 本文实例讲述了C#读取或设置ScrollLock状态的方法。分享给大家供大家参考。具体如下:C#读取或者设置ScrollLock状态,允许滚
- 反射实例化类public class Person{ public string Name { get; set; }publi
- 线程中断:void interrupted()方法:中断线程,例如,当线程A运行时,线程B可以调用线程A的interrupted()方法来设
- 今天导入了一个模型,但是模型贴图丢失了,而且Inspector面板中处于不能编辑的状态虽然可以通过重新创建材质来替换,但是这样会生成一个新的
- Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以
- Android webview旋转屏幕导致页面重新加载问题解决办法1. 在create时候加个状态判断protected void onCr
- 本文实例为大家分享了C#导出Excel的具体代码,供大家参考,具体内容如下using System;using System.Collect
- 本文实例为大家分享了Unity shader实现遮罩效果的具体代码,供大家参考,具体内容如下效果:shader代码:Shader "
- 线程启动:1.start() 和 run()的区别说明start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。sta
- java 代码块与静态代码块加载顺序public abstract class ClassLoadingTest {public stati