1.
成都创新互联是专业的湖里网站建设公司,湖里接单;提供成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行湖里网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
web.config里注册,类似下面
system.web
pages
controls
add tagPrefix="scottgu" src="~/Controls/Header.ascx" tagName="header"/
add tagPrefix="scottgu" src="~/Controls/Footer.ascx" tagName="footer"/
/controls
/pages
/system.web
注意这里的路径一定不能错,否则显示不出来
2.
注册用户控件时使用绝对路径,而不是相对路径
首先,你已经完成的步骤是:
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
缓存刷新了,你需要在缓存区建立一个Image对象来存放所有绘制的Graphics对象,再将Image对象显示在GroupBox容器中即可。
重新生成,控件工具栏,会出现【解决方案名称】组件,如hb_test组件,里面有当前解决方案自定义的控件,如果没有,以下方法可以使控件在编辑状态出现在窗体上。
打开form1.designer。vb
在Partial Class Form1类中的最后添加:
Friend WithEvents MergeColumn1 As WindowsApplication1.MergeColumn’定义控件的全局变量
找到public sub InitializeComponent过程,在里面添加:
Me.MergeColumn1 = New WindowsApplication1.Datavip()‘初始化。
Me.MergeColumn1.Location = New System.Drawing.Point(0, 0)‘控件在窗体中的位置。
Me.daMergeColumn1ame = "daMergeColumn1"’控件名
Me.MergeColumn1.Size = New System.Drawing.Size(140, 150)‘必需,控件大小。
Me.MergeColumn1.TabIndex = 0’
Me.Controls.Add(Me.daMergeColumn1)‘必需,将控件添加到窗体。