模块中动态添加控件并执行事情——陷入混乱中,请高人指点,标题长,求点击
模块中动态添加控件并执行事情——陷入混乱中,请高人指点,高分求教,标题长,求点击
以上是在模块1中编写的代码,在form1中Button1_Click时用call creat1()执行调用。希望得到的结果是,在form1中点击button1后动态添加一个label,并执行下面的事件,事件得到的效果就是当label添加完成后,用鼠标点住label时,可以在控件内拖动,当松开鼠标时,label停在当前位置。
目前用以上代码,可以实现这个功能(但不是完全想要达到的效果)。
问题是,目前每点击一次button1,生成一个新的label,上一个label就消失了。我用for next 对label的name 进行了计数。希望的效果是每点一次button1 都会增加一个新的label,但上一次新增的label不消失(例:label1、label2、label3....),并且都可以执行下面的事情。
Module Module1
Dim WithEvents Tb1 As New Label
Dim i As Integer
Public Sub creat1() '动态添加控件过程
Tb1.BorderStyle = BorderStyle.Fixed3D
Dim labelname As Boolean
labelname = printyl.ControlCollection.Equals(Tb1.Name, Tb1.Name)
If labelname = True Then
i = i + 1
Tb1.Location = New System.Drawing.Point(100 + i, 100 + i)
Tb1.Name = "ttss" + CStr(i)
Tb1.Text = "ttss" + CStr(i)
End If
Tb1.Size = New System.Drawing.Size(200, 100)
printyl.Controls.Add(Tb1)
End Sub
Dim ss As Boolean
Dim mov As Point
Private Sub Tb1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Tb1.MouseMove
If ss = True Then
Dim a, b As Integer
a = mov.X - e.X
b = mov.Y - e.Y
Tb1.Location = New Point(Tb1.Location.X - a, Tb1.Location.Y - b)
ElseIf ss = False Then
Tb1.Location = New Point(Tb1.Location.X, Tb1.Location.Y)
End If
End Sub
Private Sub Tb1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Tb1.MouseDown
ss = True
mov = New Point(e.X, e.Y)
End Sub
Private Sub Tb1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Tb1.MouseUp
ss = False
End Sub
以上是在模块1中编写的代码,在form1中Button1_Click时用call creat1()执行调用。希望得到的结果是,在form1中点击button1后动态添加一个label,并执行下面的事件,事件得到的效果就是当label添加完成后,用鼠标点住label时,可以在控件内拖动,当松开鼠标时,label停在当前位置。
目前用以上代码,可以实现这个功能(但不是完全想要达到的效果)。
问题是,目前每点击一次button1,生成一个新的label,上一个label就消失了。我用for next 对label的name 进行了计数。希望的效果是每点一次button1 都会增加一个新的label,但上一次新增的label不消失(例:label1、label2、label3....),并且都可以执行下面的事情。