扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
属性修改后没有任何设置,当然不会改变,改改
我们提供的服务有:做网站、成都网站建设、微信公众号开发、网站优化、网站认证、水城ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的水城网站制作公司
Set(ByVal value As String)
Text_1 = value
Me.Label1.Text = Text_1
End Set
Set(ByVal value As String)
Text_2 = value
Me.Label2.Text = Text_2
End Set
与使用System.Windows.Forms命名空间中的控件的用法没有区别。
首先添加引用。
其次导入(Imports)命名空间。
接着就可以使用了:
1、要使用用户控件的实例成员,就先创建一个用户控件的实例,再通过实例名.实例成员名访问;
2、要使用用户控件的共享(Shared)成员,通过用户控件类名.共享成员名访问。
如果你问的是怎样创建自己的用户控件类:
1、继承类System.Windows.Forms.UserControl;
2、继承任何一个已经存在的控件类(只要这个控件类不是NotInheritable的就行)。
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
首先,你已经完成的步骤是:
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
建一个自定义的Web控件MyContro的步骤:
1)引用
using System;
using System.IO;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
2)保证MyContro是从WebControl继承的。
public class MyControl:WebControl
3)重写下面两个函数,这是必须的
protected override void Render(HtmlTextWriter writer)
{
this.CreateChildControls();
base.Render (writer);
}
protected override void CreateChildControls()
{
// 清除现有的子控件及其 ViewState
this.Controls.Clear();
this.ClearChildViewState();
// 生成控件树
// 生成环境表格(一行,两个单元格)
Table myTable = new Table();
//build the table row生成表格中的行
TableRow row = new TableRow();
myTable.Rows.Add(row);
// 生成单元格
TableCell myCell = new TableCell();
//用来生成链接按钮导航条的代码。每个按钮都显示有一个 Webdings 字符,可以根据需//禁用,并被绑定到内部的 Click 事件处理程序。
LinkButton myLinkButton = new LinkButton();
myLinkButton.ID = "MyLinkButton";
myLinkButton.Click += new EventHandler(myLinkButton_Click);
myLinkButton.Font.Name = "宋体";
myLinkButton.ToolTip = "好玄啊!";
myLinkButton.Text = "请点我";
myCell.Controls.Add(myLinkButton);
row.Cells.Add(myCell);
Controls.Add(t);
}
4)自定义的事件的方法
private void myLinkButton_Click(object sender,System.EventArgs e)
{
Page.Response.Write("想干点什么就写点什么吧,就这么简单!");
}
5)编译一下,然后点工具—》添加/移除工具箱项
浏览到你编译生成的dll
6)使用
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流