vb点虐 控件编写 vbnet panel控件-成都快上网建站

vb点虐 控件编写 vbnet panel控件

vb点虐 自定义控件问题

首先,你已经完成的步骤是:

站在用户的角度思考问题,与客户深入沟通,找到南涧网站设计与南涧网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖南涧地区。

1.新建一个用户控件[注意,用户控件(UserControl)不是自定义控件(CustomControl)]

2.给用户控件起个名字(我在此处起名叫 RadioList)

3.在用户控件上画一个 GroupBox,命名为 RadioGroup,

并将其 Dock 属性设置为 Fill

然后,你需要做的是动态增减控件。

如果你以前用过 VB 6,你可能会想到控件数组,

但在此处,你可以直接增删控件。

具体实现如下:

4.在 GroupBox 里画一个 FlowLayoutPanel,命名为 RadioPanel,

将其 AutoScroll 属性设置为 True,即自动显示滚动条,

并设置其 FlowDirection 属性(例如设置为 TopDown)

这样就省去了手动调整 RadioButton 位置的麻烦

5.实现选项的动态增减(以下只是我的思路,你可以发挥一下)

(十分简洁,注释除外):

''' summary

''' 创建一个新的 RadioButton。

''' /summary

Private Function CreateRadio() As RadioButton

Dim NewRadio As New RadioButton

components.Add(NewRadio)

'components 字段由控件设计器自动创建,

'此代码目的是使控件在销毁(Dispose)时能自动销毁 RadioButton

'详情参见 RadioList.Designer.vb

NewRadio.Parent = RadioPanel

'设置容器

AddHandler NewRadio.CheckedChanged, AddressOf RadioButtons_CheckedChanged

'设置事件处理程序

Return NewRadio

End Function

''' summary

''' 移除已存在的 RadioButton。

''' /summary

Private Sub RemoveRadio(ByVal dest As RadioButton)

components.Remove(dest)

dest.Dispose()

End Sub

'无中生有的 RadioButton 的事件处理程序

Private Sub RadioButtons_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

'在此处设置选中项的属性,通过 sender 来确定不同的 OptionButton

'你可以通过将 OptionButton 放在一个列表,

'如 List(Of OptionButton) 中来像数组一样维护选项的次序

'注意,此处需要判断 sender 的 Checked 属性是否为 True

'因为 Changed 是“改变”,而不是“选中”

'例如:

If DirectCast(sender, RadioButton).Checked Then

SelectedIndex = ...

End If

End Sub

VB.NET中的TextBox控件详解

TextBox组件(文本框组件)是一种常用的 也是比较容易掌握的组件 应用程序主要使用它来接收使用者于输入文字信息 在前面内容中已经或多或少的接触到TextBox组件 本节就来详细探讨一下Visual 中TextBox组件的使用方法 一 TextBox组件 TextBox类 当我们使用Visual Basic Net集成开发环境开发应用程序时 在从【工具箱】的【Windows窗体】选项卡中向Form 的设计窗体拖入一个TextBox组件的后 我们可能并没有感觉到即使时这样一个简单的操作 Visual Basic Net都做了很多幕后工作 主要工作和步骤如下 首先实例化System Windows Forms TextBox类 并根据拖动到窗体的位置和形状分别设定TextBox实例的各个属性 我们看到的设计窗体 其实是Form 类的一个实例 而Form 类首先是从System Windows Forms Form类继承而来 Form 类中的成员根据使用者往窗体中拖入的组件不同而不同 各个成员通过Add或AddRange方法加入到Form 中 这样拖入的组件才能够显示在设计窗体上 以上这些都完全不同于以前Visual Basic 通过上述步骤 我们不难得到TextBox组件和TextBox类之间的关系 TextBox组件是命名空间System Windows Forms中的TextBox类的实例 在从【工具箱】的【Windows窗体】选项卡中拖入窗体的任一组件 都是 Net框架类库—— Net Framework SDK中封装的某一个类的实例 通过上述步骤也不难看出 Visual Basic Net的确才是真正的面向对象(OOP)的开发语言 二 TextBox类的成员 TextBox组件使用虽然比较简单 但TextBox类的构成成员却是非常的丰富 在一般性的编程中 主要涉及到三类 属性 方法和事件 表 表 和表 分别是TextBox类的常用属性 方法和事件及其简单说明 属性 说明 AcceptsReturn 指示在多行TextBox组件中按ENTER键时 是在组件中创建一行新文本还是激活窗体的默认按钮 AcceptsTab 该值指示在多行文本框组件中按TAB键时 是否在组件中键入一个TAB字符 而不是按选项卡的顺序将焦点移动到下一个组件 AllowDrop 获取或设置一个值 该值指示组件是否可以接受用户拖放到它上面的数据 Anchor 获取或设置组件的哪些边缘锚定到其容器边缘 BackColor 获取或设置组件的背景色 BackgroundImage 获取或设置在组件中显示的背景图像 BorderStyle 获取或设置文本框组件的边框类型 Bottom 获取组件的下边缘与其容器的工作区的上边缘之间的距离 CanFocus 获取一个值 该值指示组件是否可以接收焦点 CanSelect 获取一个值 该值指示是否可以选中组件 CanUndo 获取一个值 该值指示用户在文本框组件中能否撤消前一操作 CharacterCasing 获取或设置TextBox组件是否在字符键入时修改其大小写格式 ContextMenu 获取或设置与组件关联的快捷菜单 Reated 获取一个值 该值指示组件是否已经创建 Cursor 获取或设置当鼠标指针位于组件上时显示的光标 DataBindings 为该组件获取数据绑定 Dock 获取或设置组件停靠到父容器的哪一个边缘 Enabled 获取或设置一个值 该值指示组件是否可以对用户交互作出响应 Focused 获取一个值 该值指示组件是否有输入焦点 Font 获取或设置组件显示的文字的字体 ForeColor 获取或设置组件的前景色 MaxLength 获取或设置用户可以在文本框组件中最多键入的字符数 Multiline TRUE/FALSE 该值指示它是否为多行文本框组件 PasswordChar 获取或设置字符 该字符用于屏蔽单行 ScrollBars 获取或设置哪些滚动条应出现在多行TextBox 组件中 Text 获取或设置文本框中的当前文本 TextAlign 设置文本框内文本得对齐方式 TextLength 获取组件中文本的长度  表 TextBox类的常用属性及其说明 方法 说明 AppendText 向文本框的当前文本追加文本 Clear 从文本框控件中清除所有文本 ClearUndo 从该文本框的撤消缓冲区中清除关于最近操作的信息 Copy 将文本框中的当前选定内容复制到剪贴板 Cut 将文本框中的当前选定内容移动到剪贴板中 DoDragDrop 开始拖放操作 Focus 为控件设置输入焦点 GetChildAtPoint 检索位于指定坐标处的子控件 GetNextControl 按照子控件的Tab键顺序向前或向后检索下一个控件 Hide 对用户隐藏控件 Paste 用剪贴板的内容替换文本框中的当前选定内容 PointToClient 将指定屏幕点的位置计算成工作区坐标 PointToScreen 将指定工作区点的位置计算成屏幕坐标 ResetBindings 将DataBindings属性重置为其默认值 Select 选择控件中的文本 SelectAll 选定文本框中的所有文本 SelectNextControl 激活下一个控件 Show 向用户显示控件 SuspendLayout 临时挂起控件的布局逻辑 Undo 撤消文本框中的上一个编辑操作

表 TextBox类的常用方法及其说明

事件 说明 Click 在单击文本框时发生 CursorChanged 当 Cursor 属性的值更改时发生 DoubleClick 在双击控件时发生 DragDrop 在完成拖放操作时发生 DragEnter 在将对象拖入控件的边界时发生 DragLeave 在将对象拖出控件的边界时发生 DragOver 在将对象拖到控件的边界上发生 EnabledChanged Enabled 属性值更改后发生 Enter 进入控件时发生 GiveFeedback 在执行拖动操作期间发生 GotFocus 在控件接收焦点时发生 KeyDown 在控件有焦点的情况下按下键时发生 KeyPress 在控件有焦点的情况下按下键时发生 KeyUp 在控件有焦点的情况下释放键时发生 Leave 在输入焦点离开控件时发生 LostFocus 当控件失去焦点时发生 MouseDown 当鼠标指针位于控件上并按下鼠标键时发生 MouseEnter 在鼠标指针进入控件时发生 MouseHover 在鼠标指针悬停在控件上时发生 MouseLeave 在鼠标指针离开控件时发生 MouseMove 在鼠标指针移到控件上时发生 MouseUp 在鼠标指针在控件上并释放鼠标键时发生 MouseWheel 在移动鼠标轮并且控件有焦点时发生 Move 在移动控件时发生 Paint 在重绘控件时发生 Resize 在调整控件大小时发生

TextBox类的常用事件及其说明当然TextBox类除了上述的属性 方法和事件 还有很多属性 方法和事件 和很多受保护的方法和受保护的属性 由于它们使用的几率较少和篇幅所限 就不能一一介绍了 感兴趣的朋友可以参阅相关资料

三.掌握TextBox组件的基本用法 由于TextBox类的成员实在太丰富 一个示例要想介绍上述所有的方法 属性和事件是不可能 在下面介绍的示例中 将突出介绍在Visual 集成开发环境下通过对设定不同的属性值实现三种常见的TextBox组件式样 以及TextBox组件的方法的调用方法和在Visual Basic Net集成开发环境中如何加入TextBox组件不同事件对应的处理代码 让各位更加熟悉TextBox类和Visual Basic Net开发环境 下面是TextBox示例的具体实现步骤 启动Visual Studio Net 选择菜单【文件】|【新建】|【项目】后 弹出【新建项目】对话框 将【项目类型】设置为【Visual Basic项目】 将【模板】设置为【Windows应用程序】 在【名称】文本框中输入【TextBox组件】 在【位置】的文本框中输入【E:\项目】 然后单击【确定】按钮 这样在 E:\VS NET项目 目录中就产生了名称为 TextBox组件 的文件夹 并在里面创建了名称为 TextBox组件 的项目文件 把Visual Studio Net的当前窗口切换到【Form VB(设计)】窗口 并从【工具箱】中的【Windows窗体组件】选项卡中往Form 窗体中拖入下列组件 并执行相应操作 三个Label组件 三个TextBox组件 分别为TextBox TextBox 和TextBox 按照表 中数值来设定设定组件的主要属性 请注意TextBox组件中的属性设定值

表 【TextBox组件】项目窗体中各组件的主要属性设定数值表

按照表 各值设定后的TextBox组件三种常用的式样也就产生了 具体如图 所示

图 程序设计时TextBox组件三种常见使用方法

这三种式样就是单行的TextBox组件 多行的TextBox组件和用以输入类似密码数据的TextBox组件 为TextBox 组件添加事件和事件的处理代码 此次添加的事件的名称是Leave 当TextBox 组件失去焦点时触发此事件 添加TextBox 组件的其他事件也可仿照下面的处理方法 下面是利用Visual Basic Net在【TextBox组件】项目中添加TextBox 组件的Leave事件和添加Leave事件的处理代码的具体步骤 首先把Visual Basic Net的当前窗口切换到Form vb的代码编辑界面 然后在如图 所示的选择框中选择TextBox

图 选择TextBox组件

之后 在图 所示的选择框中选择 Leave

图 选取Leave事件

在选择 Leave 之后 Visual Basic Net会自动在Form vb中产生TextBox 的Leave事件 在Leave事件的事件处理代码区添加下列代码 下面代码调用了TextBox 组件的 Clear 方法并且显示一个TextBox 组件失去焦点的提示框

TextBox Clear ( ) 清除TextBox 组件的显示内容MsgBox ( 失去焦点! ) 弹出提示框

至此【TextBox组件】项目的全部工作就完成了 图 是程序编译后运行界面

图 【TextBox项目】的运行界面

lishixinzhi/Article/program/net/201311/12721

vb点虐 入门之分组控件:GroupBox控件

我们对控件进行分组的原因不外乎三个

为了获得清晰的用户界面而将相关的窗体元素进行可视化分组

编程分组 如对单选按钮进行分组

为了在设计时将多个控件作为一个单元来移动

在中 有GroupBox Panel TabControl这三个控件可以实现上面所提到的三个分组目的 所以我们称它们为分组控件

这三个控件在功用上十分的相似 特别是GroupBox和Panel控件 只存在一点细微的差别而已(这个差别是 只有GroupBox控件可以显示标题 而只有Panel控件可以有滚动条) 这里我们就先来了解GroupBox控件的使用

GroupBox(控件组)控件一般是作为其他控件的组的容器的形式存在的 这样有利于用户识别 使界面变得更加友好(GroupBox控件相当于Visual Basic以前版本的Frame控件) 使用控件组控件可以将一个窗体中的各种功能进一步进行分类 例如 将各种选项按钮控件分隔开

当移动单个GroupBox控件时 它所包含的所有控件也将一起移动

在大多数情况下 对控件组控件没有实际的操作 我们用它对控件进行分组 通常没有必要响应它的事件 不过 它的Name Text和Font等属性可能会经常被修改 以适应应用程序在不同阶段的要求

GroupBox控件在工具箱中的图标如图所示

一 GroupBox控件的常用属性

Anchor和Dock 这两个属性是所有有用户界面的控件都有的定位属性 这里就不啰嗦了

Name属性 标识控件的对象名称

Text属性 显示在GroupBox控件右上方的标题文字 可以用来标识该控件组的描述

Font和ForeColor属性 用于改变GroupBox控件的文字大小以及文字的颜色 需要注意的时候 它不单改变GroupBox控件的Text属性的文字外观 同时也改变其内部控件的显示的Text属性的文字外观

二 创建一组控件

在窗体上放置GroupBox控件 从工具箱中拖放一个GroupBox控件到窗体上的合适位置 调整大小

在属性窗口中改变GroupBox控件的Text属性 作为它的标题

在GroupBox控件内拖放其它需要的控件 例如RadioButton控件

设置示例 如图一所示

图一 用控件组控件对单选按钮分组

我们在拖动单个GroupBox控件的时候 它内部的控件也会随着移动 以保持和GroupBox的相对位置不变 同理 删除GroupBox控件时 它所包含的所有控件也会被删除掉

当我们调整GroupBox控件所包含的控件的Anchor和Dock属性的时候 其参照物将不是Form窗体 而是GroupBox控件了

三 编程添加GroupBox控件以及它所包含的控件

虽然GroupBox控件是在设计时用视图设计布局效果最好 但是无可避免地 很多特殊情况下也是需要在运行做添加控件到控件组中的 这里我们就用代码来完成上图一界面的绘制

动态添加控件一般需要经过下面三个步骤

创建要添加的控件实例

设置新控件的属性

将控件添加到父控件的 Controls 集合

在Form 代码的任意位置增加初始化控件的过程InitializeControl() 代码如下所示

Sub InitializeControl()

首先添加Label和TextBox控件

Dim Label As New System Windows Forms Label

Dim TextBox As New System Windows Forms TextBox

Label

Label Location = New System Drawing Point( )

Label Name = Label

Label Size = New System Drawing Size( )

Label TabIndex =

Label Text = 户主姓名

TextBox

TextBox Location = New System Drawing Point( )

TextBox Name = TextBox

TextBox Size = New System Drawing Size( )

TextBox TabIndex =

TextBox Text =

把它们添加到父控件Form 的Controls集合中

Me Controls Add(TextBox )

Me Controls Add(Label )

添加三个GroupBox控件

Dim GroupBox As New System Windows Forms GroupBox

Dim GroupBox As New System Windows Forms GroupBox

Dim GroupBox As New System Windows Forms GroupBox

GroupBox

GroupBox BackColor = System Drawing SystemColors Control

GroupBox Location = New System Drawing Point( )

GroupBox Name = GroupBox

GroupBox Size = New System Drawing Size( )

GroupBox TabIndex =

GroupBox TabStop = False

GroupBox Text = 性别

GroupBox

GroupBox Location = New System Drawing Point( )

GroupBox Name = GroupBox

GroupBox Size = New System Drawing Size( )

GroupBox TabIndex =

GroupBox TabStop = False

GroupBox Text = 单元

GroupBox

GroupBox Location = New System Drawing Point( )

GroupBox Name = GroupBox

GroupBox Size = New System Drawing Size( )

GroupBox TabIndex =

GroupBox TabStop = False

GroupBox Text = 楼层

把它们添加到父控件Form 的Controls集合中

Me Controls Add(GroupBox )

Me Controls Add(GroupBox )

Me Controls Add(GroupBox )

添加RadioButton控件并分别绘制在GroupBox控件内

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

Dim RadioButton As New System Windows Forms RadioButton

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 男性

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 女性

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 二单元

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 三单元

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 一单元

RadioButton

RadioButton BackColor = System Drawing SystemColors Control

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 四单元

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 二楼

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 三楼

RadioButton

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 一楼

RadioButton

RadioButton BackColor = System Drawing SystemColors Control

RadioButton Location = New System Drawing Point( )

RadioButton Name = RadioButton

RadioButton Size = New System Drawing Size( )

RadioButton TabIndex =

RadioButton Text = 四楼

分别把它们添加到父控件GroupBox的Controls集合中

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

GroupBox Controls Add(RadioButton )

End Sub

把上一页的代码复制添加后 把控件初始化过程InitializeControl()过程添加到Form 的New构造函数中 如下图二所示

图二 在New构造函数中添加过程InitializeControl()

现在按F 运行 Form 的窗体控件布局(如下图三所示)是不是和我们手工布局的图一的布局是一样的呢?

lishixinzhi/Article/program/ASP/201311/21749

VB点虐 如何编写用户控件?

Public Class UserControl1

#Region "变量"

Dim Down_Color As Color = Color.Blue

Dim UP_Color As Color = Color.Gray

Dim Mode As Short = 0

Dim flag As Boolean

Dim offset_X As Integer

Dim offset_Y As Integer

Dim Mouse_P As Point

#End Region

#Region "属性"

'按下颜色

Public Property _DownColor As Color

Get

Return Down_Color

End Get

Set(ByVal value As Color)

Down_Color = value

End Set

End Property

'弹起颜色

Public Property _UpColor As Color

Get

Return UP_Color

End Get

Set(ByVal value As Color)

UP_Color = value

End Set

End Property

'滑动模式 0-横 1-竖

Public Property _Mode As Short

Get

Return Mode

End Get

Set(ByVal value As Short)

Mode = value

End Set

End Property

#End Region

Private Sub UserControl1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Me.BackColor = UP_Color

End Sub

'鼠标按下

Private Sub UserControl1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown

Me.BackColor = Down_Color

Mouse_P = e.Location

flag = True

End Sub

'鼠标移动

Private Sub UserControl1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

If flag = False Then Exit Sub

Select Case Mode

Case 0 '横向·

offset_X = e.X - Mouse_P.X

If Me.Location.X + offset_X + Me.Width = Me.ParentForm.Width Or Me.Location.X + offset_X = 0 Then

flag = False

Else

Me.Location = New Point(Me.Location.X + offset_X, Me.Location.Y)

End If

Case 1 '竖向·

offset_Y = e.Y - Mouse_P.Y

If Me.Location.Y + offset_Y + Me.Height + 30 = Me.ParentForm.Height Or Me.Location.Y + offset_Y = 0 Then

flag = False

Else

Me.Location = New Point(Me.Location.X, Me.Location.Y + offset_Y)

End If

End Select

End Sub

'鼠标弹起

Private Sub UserControl1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp

Me.BackColor = UP_Color

flag = False

End Sub

End Class


名称栏目:vb点虐 控件编写 vbnet panel控件
路径分享:http://kswjz.com/article/ddepisj.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流