学习Winform分组类控件(Panel、groupBox、TabControl)

分组类控件主要包括容器控件(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>

依次单击选项卡的运行结果为:

以上就是本文的全部内容,希望对大家的学习有所帮助。

(0)

相关推荐

  • WinForm自定义函数FindControl实现按名称查找控件

    本文所述实例实现WinForm自定义函数FindControl实现按名称查找控件的功能,在C#程序开发中有一定的实用价值.分享给大家供大家参考. 关键代码如下: /// <summary> /// 按名称查找控件 /// </summary> /// <param name="parentControl">查找控件的父容器控件</param> /// <param name="findCtrlName">查

  • WinForm 自动完成控件实例代码简析

    在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了. TextBox控件本身是提供了一个自动提示功能,只要用上这三个属性: AutoCompleteCustomSource:AutoCompleteSource 属性设置为CustomSource 时要使用的 StringCollection. AutoCompleteMode:指示文本框的文本完成行为. AutoCompleteSource:自动完成源,可以是 AutoCompleteSo

  • 简介Winform中创建用户控件

    步骤: 1.创建一个项目,该项目主要用来设计用户控件. 2.创建一个用户控件窗体,用来设计用户控件. 3.向用户控件窗体中添加一个按钮(button1),给它添加相应的移入.移出事件,实现移入时按钮的背景设置一个图片,移出的时候背景设置另一个图片. 复制代码 代码如下: private void button1_MouseEnter(object sender, EventArgs e)        {            this.button1.Image = Image.FromFil

  • WinForm实现移除控件某个事件的方法

    本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下.具体功能代码如下: 主要功能部分代码如下: /// <summary> /// 移除控件某个事件 /// </summary> /// <param name="control">控件</param> /// <param name="eventName">需要移除的控件名称eg:EventClick</param> p

  • WinForm子窗体访问父窗体控件的实现方法

    Form1主窗体: 复制代码 代码如下: public delegate void SetVisiableHandler();//定义委托类型 private void button1_Click(object sender,EventArgs e)//单击事件,打开子窗体{    Form2 frm = new Form2(new SetVisiableHandler(SetVisiable));    frm.Show();} private void SetVisiable(){    d

  • C#的winform控件命名规范

    本文详细讲述了C#的winform控件命名规范.分享给大家供大家参考.具体如下: 注:这里用红字标记的部分表示有重复出现,括号内为替代表示方案 1.标准控件 序号 控件类型简写 控件类型 1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl Label 7 llb LinkLabel 8 lst ListBox 9 lvw ListView 10 mtx MaskedT

  • c#中多线程访问winform控件的若干问题小结

    我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来解决这个问题,下面我将详细的介绍. 首先来看传统方法: 复制代码 代码如下: public partial class Form1 : Form     {        public Form1()        {            InitializeComponent();        } private void Form1_Load(object sender,

  • C#中让控件全屏显示的实现代码(WinForm)

    1.使用winapi "SetParent" 接口: 复制代码 代码如下: [DllImport("user32.dll", SetLastError = true)] static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); 复制代码 代码如下: control.Dock = DockStyle.None; control.Left = 0; control.Top = 0; c

  • .Net WInform开发笔记(三)谈谈自制控件(自定义控件)

    末日这天写篇博客吧,既然没来,那就纪念一下. 这次谈谈自制控件,也就是自定义控件,先上图,再说 1.扩展OpenFileDialog,在OpenFileDialog中添加各种文件(.txt,.jpg,.excel等等)的预览功能 2.重写ListBox,增加折叠.鼠标背影.分类等功能 -----------------------------分割线--------------------------------------------------------------一.扩展OpenFileD

  • 深入分析C#中WinForm控件之Dock顺序调整的详解

    最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以随着窗口大小的变化而变化.但问题是,.net winform的dock方式是根据先添加的控件顺序进行优先级Dock排列的,假设我想目前有三个控件A.B.C分别以 Top.Bottom以及Fill方式填充窗口即窗口看起来应该是这样的:---------------------A---------------------C--------------------

随机推荐