Vb.net 如何在Visual Basic中编写单击事件?
我创建了一个表单,允许用户通过单击放大图片表单上的任意位置(需要考虑3个对象)关闭表单,然后返回到另一个表单,称为“frmPhone”。表单上有一张真实的图片:“frmPhonePics”,这是我用来完成我试图做的事情(无法在此处插入图像。抱歉)。我想做的是编写一个单击事件来关闭大图片表单,以允许用户在表单中的任何位置完全关闭它,但我不知道如何做到这一点。以下是我目前掌握的代码:Vb.net 如何在Visual Basic中编写单击事件?,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我创建了一个表单,允许用户通过单击放大图片表单上的任意位置(需要考虑3个对象)关闭表单,然后返回到另一个表单,称为“frmPhone”。表单上有一张真实的图片:“frmPhonePics”,这是我用来完成我试图做的事情(无法在此处插入图像。抱歉)。我想做的是编写一个单击事件来关闭大图片表单,以允许用户在表单中的任何位置完全关闭它,但我不知道如何做到这一点。以下是我目前掌握的代码: Private Sub frmPhonePics_Click(ByVal sender As System.Obje
Private Sub frmPhonePics_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Click
frmPhone.Show()
Me.Hide()
End Sub
您可以将各种对象的单击处理程序映射到一个对象,如果这是您所要求的:
Private Sub frmPhonePics_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Click, Handles picLarge.Click, Handles otherThing.Click
frmPhone.Show()
Me.Hide() ' should be Me.Close?
End Sub
不确定它为什么是MyBase。请单击代码中的,而不是我。单击。这是一个子类表单吗?听起来好像你的
frmPhonePics
表单上有一张图片。如果您双击它(从VBA编辑器),您应该会看到代码-例如,您可能会看到
Private Sub Image1_Click()
End Sub
现在,您只需在此处添加代码:
Private Sub Image1_Click()
Me.Hide
frmPhone.Show()
End Sub
注意-顺序很重要,因为
frmPhone.Show()
将“劫持”代码流,直到它被解除,并且在您的代码中Me.Hide
将不会执行(因此表单不会关闭),直到frmPhone
被解除。我强烈建议使用双击而不是单击。错误的点击做错事的可能性很大
最简单的方法就是从设计师那里得到。编写子程序,然后针对每个控件,在属性窗口中单击事件图标(thunderbolt),并将子程序指定给双击事件
或者,完全取消Handles
子句,并在Load事件处理程序中使用一系列Addhandler
语句。如果在控件的名称中放入一个唯一的字符串,或者如果它是所有控件,则可以遍历这些控件,并对所有控件使用一个addhandler语句
For Each c As Control In Me.Controls
AddHandler c.DoubleClick, AddressOf Ctrl_DoubleClick
Next
Private Sub Ctrl_DoubleClick(sender As Object, e As EventArgs)
'Do stuff
End Sub
您不需要额外的Handles语句。只需要一个:例如“Handles MyBase.Click,picLarge.Click,otherThing.Click”