【学习笔记4 容器控件/布局/VB窗体代码逻辑/实操】

窗体整体布局界面美化:

一、容器控件

两个比较重要的布局属性:

  • Anchor:填充布局
  • Dock:锁定布局(一般与容器控件配合使用)

1、tableLayoutPanel控件

tableLayoutPanel填满整个窗体控制窗体布局,就可以将窗体放到货缩小,里面的控件也会随之改变

实操:

  1. tableLayoutPanelyoutPanel属性:“Dock"属性由原来的"None"变为"Fill”,tableLayoutPanel就会填满整个窗体
  2. 两行上再插入一行,最上面一行的两列合并
  3. 获得标头行:图形化界面操作插入行,可以设置“绝对”像素值36
  4. 合并:第一行第一列的单元格中放入"panel"控件,将panel控件的"Dock"属性设置为“fill”,将“ColumnSpan”设置为2,因为是两列,所以设置为2,如果是3列就设置为3

注意: 每个表格只能放一个控件,要放置多个时可以在每个表格里面添加一个Panel容器然后在,Panel容器里面添加控件

2、panel控件

类似于DIV,里面可以放任何控件,可以独立布局,还可以让其它控件及容器在它的内部再次布局。用于将多个控件组织在一起,并控制它们的显示和排列方式
(1)Panel控件可以用于将相关的控件组合在一起,形成一个逻辑上的单元-合并单元(上述例子)
(2)Panel控件可以用于实现滚动功能,通过设置Panel的AutoScroll属性为true来实现
实操:

  1. 在Panel1里面拖拽一个子级Panel2
  2. 设置父级Panel1的AutoScroll属性为True
  3. 当子级高度或者宽度大于父级时,出现滚动条
  4. 通过duck和anchor能实现上下左右滚动

3、GroupBox控件

GroupBox控件可以在里面包含一组相关的控件,并为这组控件提供一个标题和边框,方便用户理解和操作

使用场景
1>设置窗体中的选项卡:将不同类别的选项卡放在不同的GroupBox中,以便用户快速找到所需的选项卡
2>收集用户信息:将输入相同类型的信息的控件,如文本框、下拉列表、单选按钮等,放在同一组中,以便用户一目了然地看到需要填写的信息
3>显示程序的运行状态:将运行状态相关的控件放在同一组中,如进度条、文本标签、按钮等,以便用户了解程序当前的执行状态
4>切换窗体布局:在用户切换窗体布局时,使用GroupBox可以方便地将窗体中的控件进行分类和组织,以便更好地适应不同的屏幕尺寸和分辨率

4、FlowLayoutPanel控件

相比Panel,此控件额外功能是在其内部的控件自动流式布局,本行不够的自动到下一行

1>FlowDirection 属性的值来指定流向
2>WrapContents 属性的值来指定是对 FlowLayoutPanel控件的内容进行换行还是剪裁
3>AutoScroll属性来使其具有自动滚动条功能
4>任何 Windows 窗体控件(包括 FlowLayoutPanel 的其他实例)都可以是 FlowLayoutPanel 控件的子级
5>与其他容器控件相比,FlowLayoutPanel更适合承载具有动态性质的控件。例如:动态生成的图表、流式布局的标准控件等

5、TabControl控件-选项卡容器

TabControl控件可以实现在同一个窗体中切换不同的内容页面,可以在每个TabPage中放置不同的控件,实现多个布局的切换和显示

常用方法:
1>AddTabItem:动态地向TabControl中添加一个新的TabItem
2>RemoveTabItem:移除指定的TabItem
3>SelectTabItem:选中指定的TabItem
常用事件:
SelectionChanged:当选中的TabItem发生变化时触发

6、SplitContainer控件-二分区容器

1>Orientation属性:切换分割线方向
2>SplitContainer控件可以将窗体分为两个可调整大小的区域,可以在每个区域中放置不同的控件,实现界面的分割和布局调整
3>SplitContainer控件由分隔线和两个面板容器组成,可以通过分隔线将容器所在区域分为两个部分(左右或上下),每个部分里面有一个面板容器(Panel容器类),可以放置其它控件

4>使用场景:
分隔容器常用于显示侧边栏或底边栏,就像使用Visual Studio一样,在不需要的时候收起,可以随时调整尺寸

5>实操:
分左右两个面板:左一号面板右二号面板
FormMain类:主窗体容器
一号面板:
textLable字段-Lable类型控件
colapsedTimer字段-Time类型控件(用于动画式收起一号面板)
分隔:splitPane字段
二号面板:
switchButton字段-Button类型控件
collapsedButton字段-Button类型控件
FlowLayout字段-FlowLayoutPanel类型容器
使用流式布局面板FlowLayoutPanel类型容器让两个按钮放置的更合理,将按钮放在流式面板上,再把流式面板放在分隔容器的二号面板中

6>收起面板 Panel1Collapsed属性:this.splitPane.Panel1Collapsed =
!this.splitPane.Panel1Collapsed;

二、布局

容器和容器内控件之间的空白称为容器的Padding属性
容器内控件之间的空白称为控件的Margin属性

注意: 一个控件离其所在容器四周的距离,是容器的Padding属性和该控件的Margin属性之和。例如图中的按钮0,它和Form容器的左边的距离就是Form容器的Padding属性和按钮0的Margin属性之和

Padding属性和Margin属性的值都是一个Padding类的对象,
Padding类为值类型对象,具有四个整型类型属性:Left,Top,Right,Bottom,分别表左上右下四个方向的空白大小。
Padding类还有一个特殊的整型类型属性:All,当Left,Top,Right,Bottom属性值相同时,All属性是Left,Top,Right,Bottom其中一个的值,否则All属性值为-1

当Padding对象的All属性为-1时,表示其Left,Top,Right,Bottom属性值不同,当All属性值为正整数时,表示Left,Top,Right,Bottom值相同,等于All的值

三、VS中创建VB窗体项目源码代码逻辑

VB窗体源码解读:

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
用于标记这段代码是由设计器生成的,不应手动编辑。

Partial Class Form1 部分类声明,表示这个类可能会在其他文件中继续定义

'Form 重写 Dispose,以清理组件列表。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    Try
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
    Finally
        MyBase.Dispose(disposing)
    End Try
End Sub

'Windows 窗体设计器所必需的 Private components As
System.ComponentModel.IContainer components定义 其是一个容器,包含窗体使用的所有组件

InitializeComponent 方法用于初始化窗体及其控件

四、VS中创建VB窗体项目实操

1、添加常用控件:Label、CheckBox、Button、TextBox

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Label1.Text = TextBox1.Text
        If CheckBox1.Checked Then
            Label1.ForeColor = System.Drawing.Color.Red
        Else
            Label1.ForeColor = System.Drawing.Color.Black
        End If
    End Sub
End Class

2、增加 ComboBox(下拉框)、ListBox(列表框)、RadioButton(单选按钮)和 NumericUpDown(数值选择框),以及相应的事件处理逻辑
实操代码:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 更新 Label1 显示文本框中的内容
        Label1.Text = TextBox1.Text

        ' 根据 CheckBox1 的选中状态改变 Label1 的颜色
        If CheckBox1.Checked Then
            Label1.ForeColor = System.Drawing.Color.Red
        Else
            Label1.ForeColor = System.Drawing.Color.Black
        End If

        ' 显示 ComboBox1 和 ListBox1 的选中项
        MessageBox.Show("ComboBox selected item: " & ComboBox1.SelectedItem.ToString() & vbCrLf &
                        "ListBox selected item: " & ListBox1.SelectedItem.ToString())
    End Sub


    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        ' 当 ComboBox1 的选项发生变化时显示消息
        MessageBox.Show("ComboBox selection changed to: " & ComboBox1.SelectedItem.ToString())
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        ' 当 ListBox1 的选项发生变化时显示消息
        MessageBox.Show("ListBox selection changed to: " & ListBox1.SelectedItem.ToString())
    End Sub

    Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
        ' 当单选按钮的选项发生变化时显示消息
        Dim selectedRadioButton As RadioButton = CType(sender, RadioButton)
        If selectedRadioButton.Checked Then
            MessageBox.Show("RadioButton selected: " & selectedRadioButton.Text)
        End If
    End Sub

    Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown1.ValueChanged
        ' 当 NumericUpDown1 的值发生变化时显示消息
        MessageBox.Show("NumericUpDown value changed to: " & NumericUpDown1.Value.ToString())
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox1.Items.Add("超人")
        ComboBox1.Items.Add("蝙蝠侠")
        ComboBox1.Items.Add("蜘蛛侠")
        ListBox1.Items.Add("金刚")
        ListBox1.Items.Add("泰坦")
        ListBox1.Items.Add("哥斯拉")
        ListBox1.Items.Add("钢铁侠")
    End Sub
End Class
VB.NET是一种面向对象的编程语言,它是微软公司开发的一种基于.NET框架的编程语言。下面是一些VB.NET学习笔记的内容: 1. 基本语法:VB.NET的语法与其他编程语言类似,包括变量声明、条件语句、循环语句等。学习者需要掌握基本的语法规则和关键字。 2. 数据类型:VB.NET支持多种数据类型,包括整型、浮点型、字符型、布尔型等。学习者需要了解各种数据类型的特点和使用方法。 3. 控制结构:学习者需要掌握条件语句(如if语句、switch语句)和循环语句(如for循环、while循环)等控制结构,以实现程序的流程控制。 4. 函数和过程:VB.NET支持函数和过程的定义和调用。学习者需要了解函数和过程的区别,以及如何传递参数和返回值。 5. 面向对象编程:VB.NET是一种面向对象的编程语言,学习者需要了解类、对象、继承、多态等面向对象的概念和使用方法。 6. 异常处理:学习者需要了解如何使用try-catch语句来捕获和处理异常,以提高程序的健壮性。 7. 文件操作:学习者需要了解如何读写文件、创建和管理文件夹等文件操作的基本知识。 8. 数据库编程:VB.NET可以与数据库进行交互,学习者需要了解如何连接数据库、执行SQL语句、读写数据库等数据库编程的基本知识。 9. GUI编程:VB.NET提供了丰富的GUI组件和控件学习者需要了解如何设计窗体、添加控件、处理事件等GUI编程的基本知识。 10. 调试和测试:学习者需要了解如何使用调试工具来调试程序,以及如何编写和运行单元测试来验证程序的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值