簡體   English   中英

如何在Visual Basic中編寫單擊事件?

[英]How to write a single click event in Visual Basic?

我創建了一個窗體,該窗體允許用戶通過單擊放大圖片窗體上的任意位置(要考慮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

您可以將各種對象的單擊處理程序映射到一件事,如果您要的是:

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 這是子類化形式嗎?

聽起來好像您的frmPhonePics表單上有一張圖片。 如果雙擊(從VBA編輯器中),則應轉到相應的代碼-例如,您可能會看到

Private Sub Image1_Click()

End Sub

現在,您要做的就是在此處添加代碼:

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

注意-順序很重要,因為frmPhone.Show()將“劫持”代碼流,直到將其關閉為止;在您的代碼中, Me.Hide將不會執行(因此該表單將不會關閉),直到關閉了frmPhone

我強烈建議您使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM