
正文
vb.net控件事件的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net给控件加事件
两种方法:
1. 用WithEvents声明变量,这样你就可以像对待拖上去的控件一样操作:
Public Class Form3
WithEvents btn As New Button
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles Me.Load
Controls.Add(btn)
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
MsgBox(Now)
End Sub
End Class
2. 使用AddHandler 语句:
Public Class Form3
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim btn As New Button
AddHandler btn.Click, AddressOf btn_Click
Controls.Add(btn)
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs)
MsgBox(Now)
End Sub
End Class
WithEvents (Visual Basic):
AddHandler 语句:
相关问答
Q1: VB.net中怎么调用控件的事件
软糖
来回答罗。
“调用事件”有歧义vb.net控件事件,vb.net控件事件你的意思是不是下面两种vb.net控件事件:
调用事件处理方法
直接调用对象名.方法名
'例如有这样一个按钮点击事件处理程序
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
秒表.Start()
End Sub
'调用它直接用
Button1_Click(me, new EventArgs())引发事件
Button1.Click.Invoke(me, new EventArgs())另外 RaiseEvent
也可以引发事件vb.net控件事件,但不能使用
RaiseEvent 来引发派生窗体的控件事件vb.net控件事件,只有自己定义的类的事件才能用它引发。
如满意,请采纳,谢谢。
Q2: vb.net timer控件触发按钮的click事件
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
m = m + 1
n = m.tostring
TextBox1.Text = n
End Sub
m=m+1
n = m.tostring
textbox1.text = n
把这几句原来在button2 click事件里面vb.net控件事件的代码vb.net控件事件,直接写在 timer事件里面vb.net控件事件,把timervb.net控件事件的Enabled属性设置为True, Interval属性设置为1000,就可以vb.net控件事件了。
Q3: VB.NET控件的一些事件的触发顺序是什么
一个一个回答吧。
1、CheckBox vb.net控件事件的 MouseDown 事件发生在 CheckedChange 事件之前vb.net控件事件,但这是指在单步调试vb.net控件事件的状态下vb.net控件事件,事实上在编译好的程序中,这两个事件是分别处在两个不同的线程中,单纯的考虑时间上的前后没有意义。
2、MouseDown 在先。Scroll 事件发生在滚动条移动的过程中,而 ValueChange 事件发生在滚动条的 Value 属性发生改变的时候,两者没有必然联系。举例,当你用鼠标拖动滚动条移动的时候,这时发生的是 Scroll 事件;松开鼠标键后,Value 属性值改变,这时候触发 ValueChange 事件。另外,如果滚动条的 Value 是通过代码改变的而非鼠标拖动的,是不触发 Scroll 事件只触发 ValueChange 事件。
3、ClientSize 是指控件的工作区的高度和宽度。比如说 form,它的 Size 值是包括标题栏、边框等,而 ClientSize 是工作区,不包括标题栏、边框等。
4、一般是 Load→Paint→Shown。
Q4: 如何在 vb.net 为动态生成的控件添加事件并传递数据
'把图片的声明放在外面,类里面过程外面,而且要用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控件事件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net控件事件的信息别忘了在本站进行查找喔。






