0

我创建了一个表单,允许用户通过单击放大图片表单上的任意位置来关闭表单(需要考虑 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
4

3 回答 3

0

听起来好像您的frmPhonePics表格上有一张图片。如果你双击它(从 VBA 编辑器),你应该被带到代码 - 例如,你可能会看到

Private Sub Image1_Click()

End Sub

现在你所要做的就是在那里添加你的代码:

Private Sub Image1_Click()
  Me.Hide
  frmPhone.Show()
End Sub

注意 - 顺序很重要,因为frmPhone.Show()将“劫持”代码流直到它被解除,并且在您的代码Me.Hide中不会执行(因此表单不会关闭)直到frmPhone被解除。

于 2013-10-31T21:09:22.380 回答
0

You can map the click handler for various object to one thing, if that is what you are asking:

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

Not sure why it is MyBase.Click in your code instead of Me.Click. Is this a subclassed form?

于 2013-10-31T21:07:22.200 回答
0

我强烈建议使用 DoubleClick 而不是单击。错误点击做错事的机会非常大。

最简单的方法来自设计师。编写子例程,然后对于每个控件,在属性窗口中,单击事件图标(霹雳)并将子例程分配给双击事件。

或者,完全放弃该子句并在 Load 事件处理程序中Handles使用一系列语句。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
于 2013-10-31T21:18:44.080 回答