[英]Fire Panel's Click event
我一直在尋找如何自動觸發Panel
的Click
事件。 我找到了為Button
執行此操作的代碼,它並不相同。
我的問題是:我正在制作一個自動圖庫生成器,當您單擊包含用戶ID的父塊時,我想觸發該事件。 問題是當我單擊圖像和標簽位於塊之前的事件時,然后如果我單擊圖像或標簽,則希望單擊該塊。
這是我的代碼:
Public Class users
Private Sub users_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' COMPROVE CONNECTION
Try
' ESTABLISH CONNECTION TO SERVER
conn = New DataBase(DbServer, DbName, DbUser, Password)
' PICK UP DATA FROM USERS
Dim DataTable As New DataTable
DataTable = conn.ConsultSql("SELECT `id_user`,`full_name`,`img` FROM `user` WHERE `user_type` = 1")
' PRINT PHARMACIST
Dim b As Integer = 0
While b < DataTable.Rows.Count
Dim RowData As DataRow = DataTable.Rows(b)
PrintUsers(RowData)
b += 1
End While
Catch ex As Exception
MessageBox.Show("Ocurrió el siguiente error: " & ex.Message, "Error al loguearse", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Public Sub PrintUsers(ByVal RowData As DataRow)
Dim iNumber As String
Console.WriteLine(RowData("full_name"))
iNumber = RowData("full_name")
' GENERATE ID
Dim oPaneldId As New Panel
oPaneldId.Name = RowData("id_user")
' GENERATE TEXT NAME
Dim oTextField As New Label
oTextField.Name = "name" & iNumber
oTextField.Text = iNumber
' GENEREATE PHOTO
Dim oPictureBox As New PictureBox
oPictureBox.Name = "img" & iNumber
Dim MyWebClient As New System.Net.WebClient
'BYTE ARRAY HOLDS THE DATA
Dim ImageInBytes() As Byte = MyWebClient.DownloadData(RowData("img"))
'CREATE A MEMORY STREAM USING THE BYTES
Dim ImageStream As New IO.MemoryStream(ImageInBytes)
'CREATE A BITMAP FROM THE MEMORY STREAM
oPictureBox.Image = New System.Drawing.Bitmap(ImageStream)
oPictureBox.Size = New Size(100, 130)
' ADDING TO THE BODY
oPaneldId.Controls.Add(oTextField)
oPaneldId.Controls.Add(oPictureBox)
AddHandler oPaneldId.Click, AddressOf Me.SelectUser
AddHandler oPictureBox.Click, AddressOf Me.ClickFather
AddHandler oTextField.Click, AddressOf Me.ClickFather
body.Controls.Add(oPaneldId)
End Sub
Public Sub SelectUser()
Console.WriteLine("Funciona")
End Sub
Public Sub ClickFather(sender As Object, e As EventArgs)
Console.WriteLine(sender.GetType.Name)
Console.WriteLine(sender.parent.Name)
sender.parent.click
End Sub
End Class
將面板中其他控件的click事件處理程序添加到用於面板click事件的相同事件處理程序中。 因此您的代碼將更改為
AddHandler oPaneldId.Click, AddressOf Me.SelectUser
AddHandler oPictureBox.Click, AddressOf Me.SelectUser
AddHandler oTextField.Click, AddressOf Me.SelectUser
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.