Určenie udalosti pre ovladacie prvky v Controls, VB.NET   zodpovězená otázka

C#

Prosím o radu ako zistím s ktorým prvkom pracujem. Prvky vytváram programom.

Prikladám program.

Public Class Form1
    Dim Lb() As Label
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i, j, k, k0, l, x, y, v, v1 As Int16
        v = 25
        v1 = v - 1
        y = 0
        Panel1.Height = 9 * v1 + 5
        Panel1.Width = 9 * v1 + 5
        For i = 1 To 9
            x = 0
            For j = 1 To 9
                l += 1
                k += 1
                Dim pH As New Label
                pH.BorderStyle = BorderStyle.FixedSingle
                pH.BackColor = Color.Azure
                pH.Width = v
                pH.Height = v
                pH.Location = New Point(x, y)
                Me.Panel1.Controls.Add(pH)
                Me.Panel1.Controls(l - 1).Name = "Lb" & Trim(Str(l))
                If j Mod 3 = 0 Then x += v : k = k0 Else x += v1
            Next
            k0 += 3
            k += 3
            If i Mod 3 = 0 Then y += v : k = 0 : k0 = 0 Else y += v1
        Next i
    End Sub
End Class

ďakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Asi jsem dotaz nepochopil, ale pokud potřebujete někde jinde (později) po jeho vytvoření najít některý z těch dinamicky vytvořených prvků, tak normálně procházejte tu kolekci Me.Panel1.Controls a testujte zda aktuální objekt je ten prvek co hledáte.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Prepáčte mi že som sa nepresne vyjadril.

Potrebujem určiť udalosť "Click" pre vytvorené prvky (Labely)

Následne zistiť na ktorý prvok som klikol.

Neviem si s tým poradiť.

ďakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pak jednoduše přidejte registraci události tj. tento řádek:

AddHandler pH.Click, AddressOf pH_Click

před řádek (ve Form1_Load):

Me.Panel1.Controls.Add(pH)

a do formuláře přidejte handler pH_Click:

Private Sub ph_Click(ByVal sender as object, ByVal e as EventArgs)
    MessageBox.Show("Clicked on " & CType(sender, Label).Name)
End Sub
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Veľmi pekne ďakujem, to som potreboval

Neviem označiť tento príspevok za vyriešený

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback