[英]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.