vbnet自定义属性

钟逸 58 2024-02-18 11:59:28

vb.net自定义控件问题

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

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

上一篇:九阴真经五仙内功属性
下一篇:阴阳师b站服是鬼区吗
相关文章
返回顶部小火箭