把你的控件 继承Panel类,而不要集成UserControl类。
坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都展览展示小微创业公司专业提供企业网站制作营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。
你可以在集成Panel后,往Panel里面加一些你自己的方法或Control来实现你需要的功能。向里面拖控件的功能则由Panel来控制,你自己就不用管了。
用datagridview
排序的话datagridview自身的功能就能实现
你说的标签如果是指双击或者单击或者右击有相应的反应的话
需要在后台编写相应事件
操作还是比较方便的
'我给你找到了,设置region属性就可
Private Sub PictureBox1_DoubleClick(sender As System.Object, e As System.EventArgs) Handles PictureBox1.DoubleClick
If PictureBox1.Region Is Nothing Then
Dim path As New System.Drawing.Drawing2D.GraphicsPath
path.AddEllipse(0, 0, 200, 200)
PictureBox1.Region = New Region(path)
Else
PictureBox1.Region = Nothing
End If
End Sub
'这个双击图片框使其变形,通过GraphicsPath对象可以作出各种形态来,比如可作出文字形状
Dim stringText As String = "我是谁"
Dim family As New FontFamily("Arial")
Dim myfontStyle As Integer = CInt(FontStyle.Italic)
Dim emSize As Integer = 86
Dim origin As New Point(20, 20)
Dim format As StringFormat = StringFormat.GenericDefault
path.AddString(stringText, family, myfontStyle, emSize, _
origin, format)
PictureBox1.Region = New Region(path)
对于窗体中的容器控件,比如 GroupBox,Panel 等,它仅仅访问了这些控件本身,而不会去访问它们的子控件。为了实现你所要求的功能,需要将上述代码修改:
Public Sub IterateThroughControls(ByVal parent As Control)
For Each c As Control In parent.Controls
MessageBox.Show(c.ToString())
If c.HasChildern Then
'利用递归实现容器子控件的访问,重复循环遍历控件,调用自身函数
IterateThroughControls(c)
End If
Next
End Sub
调用方法:
IterateThroughControls(TabControl1) 'tabcontrol1为控件名,也可用groupbox1等
此外,判断遍历的控件是不是相应的文本控件,或者combobox控件,可用此代码判断
For Each t As Control In Me.Controls
If TypeOf t Is TextBox Then
MsgBox(t)
End If
Next
vb.net中控件都是矩形的,如果一定要看起来是其他形状的,只能用背景图片,一般要三个背景图片,正常时候、鼠标移上时候、按下时候的。分别在按钮的四个事件:MouseHover MouseLeave MouseDown MouseUp的时候更换成相应的背景图片