说明:工程中用到的自定义控件,数目不定,但按一定排列顺序(纵向或横向)在Panel容器上加载,其间涉及到滚动条的使用。
Public Structure ItemPanelParam '自定义结构体 用来描述控件及容器的一些视觉参数
Dim IsRowFirst As Boolean ' 确定是按行排列优先还是按列排列优先,True为按行排列优先。
Dim IsAutoScroll As Boolean ' 确定是否使用Panel的AuotScroll属性,若使用则对其控制度降低。
Dim ItemCount As Int32 ' 存储当前需要显示的自定义控件(Item)的数目
Dim Rows As Int32 ' 通知显示区域(Panel)可以显示的行数目
Dim Cols As Int32 ' 通知显示区域(Panel)可以显示的列数目
Dim ItemWidth As Int32 ' 存储自定义控件的宽度
Dim ItemHeight As Int32 ' 存储自定义控件的高度
Dim XMargin As Int32 ' 存储行内相邻自定义控件的间距宽度
Dim YMargin As Int32 ' 存储列内相邻自定义控件的间距高度
End Structure
Dim IPP As ItemPanelParam ' 当前窗体的视觉参数
Dim VSBar As New VScrollBar ' 垂直滚动条,当panel的AuotScroll属性为false时可能使用
Dim HSBar As New HScrollBar ' 水平滚动条,当panel的AuotScroll属性为false时可能使用
Dim arrItem As New ArrayList ' 存储自定义控件时控件数组列表
Dim TargeItemIndex As Int32 = 0 ' Using for the Display of Items
Private Sub InitialIPP()
'// 初始化IPP, 每一个目的程序都要初始化一次
IPP.IsRowFirst = chkIsRowFirst.Checked
IPP.IsAutoScroll = chkIsAutoScroll.Checked
IPP.ItemCount = NumUpDown.Value
IPP.Rows = 2
IPP.Cols = 5
IPP.ItemWidth = 136
IPP.ItemHeight = 200
IPP.XMargin = 8
IPP.YMargin = 8
End Sub