簡體   English   中英

消防面板的Click事件

[英]Fire Panel's Click event

我一直在尋找如何自動觸發PanelClick事件。 我找到了為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.

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