我创建了一个表单,允许用户通过单击放大图片表单上的任意位置来关闭表单(需要考虑3个对象)并返回另一个表单,称为“frmPhone”。表格上有一个实际的图片:“frmPhonePics”,这是我用来完成我正在尝试做的事情(无法在这里插入图片。抱歉。)我想要做的就是点击一下事件关闭大图片形式,以允许用户绝对关闭它在窗体中的任何地方,但我不知道如何做到这一点。这是我到目前为止的代码:
Private Sub frmPhonePics_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Click
frmPhone.Show()
Me.Hide()
End Sub
答案 0 :(得分:0)
如果您要问的话,您可以将各种对象的点击处理程序映射到一件事:
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.Click
而不是Me.Click
。这是一个子类形式吗?
答案 1 :(得分:0)
听起来你的frmPhonePics
表格上有一张照片。如果你双击它(从VBA编辑器),你应该被带到代码 - 例如,你可能会看到
Private Sub Image1_Click()
End Sub
现在你要做的就是在那里添加你的代码:
Private Sub Image1_Click()
Me.Hide
frmPhone.Show()
End Sub
注意 - 顺序很重要,因为frmPhone.Show()
将“劫持”代码流直到它被解除,并且代码Me.Hide
将不会执行(因此表单不会关闭),直到{{1}被解雇了。
答案 2 :(得分:0)
我强烈建议您使用DoubleClick而不是单击。错误点击错误的可能性非常大。
最简单的方法就是来自设计师。编写子例程,然后对于每个控件,在属性窗口中,单击事件图标(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