2010-05-03 23 views
4

我有一個flowLayoutPanel,我正在編程添加新的panelLayouts。每個panelLayout都有一個pictureBox。這一切都很好,但我需要檢測何時該圖片框被點擊。如何添加事件到圖片?我似乎只能找到C#示例....添加日期事件到圖片盒vb.net

我的代碼添加圖像如下...

 ' add pic to the little panel container 
     Dim pic As New PictureBox() 
     pic.Size = New Size(cover_width, cover_height) 
     pic.Location = New Point(10, 0) 
     pic.Image = Image.FromFile("c:/test.jpg") 
     panel.Controls.Add(pic) 

     'add pic and other labels (hidden in this example) to the big panel flow 
     albumFlow.Controls.Add(panel) 

所以我假設的地方,當我創造我添加圖像一個onclick事件。如果可能的話,我還需要獲取它的索引!謝謝你的幫助!

回答

5

使用AddHandler語句訂閱點擊事件:

AddHandler pic.Click, AddressOf pic_Click 

的pic_Click()方法的sender參數爲您提供了圖片框後面的參考:

Private Sub pic_Click(ByVal sender As Object, ByVal e As EventArgs) 
    Dim pic As PictureBox = DirectCast(sender, PictureBox) 
    ' etc... 
End Sub 

如果您需要有關特定控件的其他信息,例如索引,那麼您可以使用Tag屬性。

+0

再次感謝你,漢斯,現貨!我使用了pic.tag,它非常完美。 :) – 2010-05-03 20:58:44

+0

如果/當你處理表單時,不要忘記刪除事件處理程序,否則它們會四處閒逛並佔用你的資源。 – camainc 2010-05-04 15:13:58

+0

這裏沒有必要。他將控件添加到Controls集合,並且事件處理程序處於窗體中。它得到如此處理和委託引用不能保持表單實例活着。 – 2010-05-04 17:23:52

0

用您的控件的名稱替換PictureBox1。

Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click 
    'executes when PictureBox1 is clicked 
End Sub