【问题标题】:How to write a single click event in Visual Basic?如何在 Visual Basic 中编写单击事件?
【发布时间】:2013-10-31 21:02:57
【问题描述】:

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

【问题讨论】:

    标签: vb.net visual-studio-2010


    【解决方案1】:

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

    Private Sub Image1_Click()
    
    End Sub
    

    现在您所要做的就是在此处添加您的代码:

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

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

    【讨论】:

      【解决方案2】:

      如果您要求的是,您可以将各种对象的点击处理程序映射到一件事:

      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。这是一个子类形式吗?

      【讨论】:

      • 您不需要额外的 Handles 语句。只需要一个:例如"处理 MyBase.Click、picLarge.Click、otherThing.Click"
      【解决方案3】:

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

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

      或者,完全放弃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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-28
        • 2013-05-16
        相关资源
        最近更新 更多