vb.net生成控件 vbnet控件开发

vb.net 动态生成的控件在别处如何调用?动态生成的控件有自己的名称吗?可以先定义namevb.net生成控件,动态生成vb.net生成控件的时候,赋给它,你调用的时候就使用固定的变量:
dim a(N) asobject
Dim ttmp As New TextBox
ttmp.Top = 3
ttmp.Left = 3
ttmp.Width = 100
ttmp.Text = "vb.net生成控件我是文本框"
a(1) = ttmp
Me.Controls.Add(a(1))
'调用的时候可以用a(1).text调用vb.net生成控件了呢
Vb.net调用for循环生成的控件的方法你有控件是没错,有方法也没错
但是你没有为控件添加对应的委托 , 即没有把事件处理方法(Bt_Click)添加到控件的事件队列中去
你应该使用AddHandler语句,具体请查看MSDN
如何在 vb.net 为动态生成的控件添加事件并传递数据【vb.net生成控件 vbnet控件开发】'把图片的声明放在外面,类里面过程外面,而且要用As,不然等会儿没法用
Dim myPicture As New System.Windows.Forms.PictureBox()
'动态生成的控件,加一行
Private Sub UserControl1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Panel3.Controls.Add(myPicture)
myPicture.Size =New System.Drawing.Size(115, 160)
myPicture.TabStop =False
myPicture.Name ="p"
myPicture.Cursor = Cursors.Hand
AddHandler myPicture.Click, AddressOf mypic_Click '添加事件
AddHandler returnid, AddressOf idReturned '绑定事件和过程
End Sub
'再来个事件,放在声明的地方 , 就是类里面、过程外面
Private Event returnid(ByVal id As String) '这个事件可以传递值哦~
'普通的单击事件
Private Sub mypic_Click()
RaiseEvent returnid(myPicture.Name)
End Sub
'会传值的事件过程
Private Sub idReturned(ByVal id As String)
Dim bookInfo As New BookInfo
bookInfo.Show()
Me.Parent.Enabled = False
'用id变量做点什么吧
End Sub
如果要改事件的签名(参数一类的)的话 , 得重写控件 。你可以这样自己弄一个事件 。
VB.NET中如何动态创建控件Option Explicit
Private WithEvents NewTextBox As TextBox
'通过使用WithEvents关键字声明一个对象变量为新的命令按钮
Private Sub Command1_Click()
If NewTextBox Is Nothing Then
Set NewTextBox = Controls.Add("VB.TextBox", "cmdNew", Form1)
NewTextBox.Move 200, 200
NewTextBox.Width = Form1.Width - 450
NewTextBox.Height = Form1.Height - 1400
NewTextBox.Visible = True
End If
End Sub
Private Sub Command2_Click()
If NewTextBox Is Nothing Then
Exit Sub
Else
Controls.Remove NewTextBox
Set NewTextBox = Nothing
End If
End Sub
关于vb.net生成控件和vbnet控件开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读