vb点虐 生成控件 vbnet自定义控件

Vb点虐 调用for循环生成的控件的方法

你有控件是没错,有方法也没错

创新互联公司专注于汝阳网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供汝阳营销型网站建设,汝阳网站制作、汝阳网页设计、汝阳网站官网定制、小程序制作服务,打造汝阳网络公司原创品牌,更为您提供汝阳网站排名全网营销落地服务。

但是你没有为控件添加对应的委托,即没有把事件处理方法(Bt_Click)添加到控件的事件队列中去

你应该使用AddHandler语句,具体请查看MSDN

如何在 vb点虐 为动态生成的控件添加事件并传递数据

'把图片的声明放在外面,类里面过程外面,而且要用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点虐 动态生成的控件在别处如何调用?动态生成的控件有自己的名称吗?

可以先定义name,动态生成的时候,赋给它,你调用的时候就使用固定的变量:

dim a(N) as object

Dim ttmp As New TextBox

ttmp.Top = 3

ttmp.Left = 3

ttmp.Width = 100

ttmp.Text = "我是文本框"

a(1) = ttmp

Me.Controls.Add(a(1))

'调用的时候可以用a(1).text调用了呢


分享名称:vb点虐 生成控件 vbnet自定义控件
当前链接:http://scyanting.com/article/ddjejhe.html