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
如果要改事件的签名(参数一类的)的话,得重写控件。你可以这样自己弄一个事件。
a1.addEventListener("click", function () { window.location.href = "newsDetail.aspx?id=" + this})在这个click方法中,你可以先打印this,看看this代表的是什么。
这个this应该代表的是a1,你应该在创建a1(var a1 = document.createElement("a"))
时,指定ID,这样click方法中,你就可以同this.id获得ID
label的onClick事件 对应的只有Sender:Tobject 一个参数你的 LabOnClick(Sender:Tobject,msgStr:String)
怎么也是对不起来的。所以不行
要么 1 重写一个label
2 我惯用的偷懒办法
newLabel.OnClick:=LabOnClick(Sender)
然后每个label的hint不一样 每次点击
就获取其中的hint
procedure TForm1.LabOnClick(Sender: TObject)
begin
showmessage(Tlabel(Sender).Hint)
end
实际上 我动态创建很多控件,经常拿tag来区分的
比如说
设备1 ID是3 newLabel.tag:=3
设备2 ID是9 newLabel.tag:=9
事件发生后 就根据 Tlabel(Sender).tag 我就知道是哪个设备被点击了
不用String字段
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)