Dynamicky vytvarene labely   zodpovězená otázka

VB.NET, WinForms

Vytvářím dynamicky labely - asi takhle:

labels(count) = New Label
labels(count).Location = New System.Drawing.Point(x, y)
labels(count).Size = New System.Drawing.Size(x_size, y_size)

.... atd

a vytvořím handler:

AddHandler labels(count).MouseMove, AddressOf Me.LabelMouseMove

Procedura pak vypada nejak takhle:

Private Sub LabelMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)

.....

End Sub

A ja se ptám jak uvnitr teto procedury zjistim napriklad sirku konkretniho labelu, nebo jeho barvu. Kdyby nebyl dynamicky generovany napsal bych normalne:

Label1.width 

Jenomze tady ani neznam jeho jmeno...

Díky za pomoc

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

K labelu se dostanete přetypováním parametru sender, kde se drží reference na kompoenntu, jehož handler zavolala:

Dim label As LAbel = DirectCast(sender,label)
label.width...
nahlásit spamnahlásit spam 0 odpovědětodpovědět

To byla rychlost, díky funguje ...

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

Jaký je vůbec důvod držet Labely v poli?

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

asi zadny... vychazel jsem z jednoho prikladu a myslel jsem ze bude jednodussi je pak smazat. Stejne je pak ale mazu smazanim vsech controls rodicovskeho prvku.

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

Přidávat Labely do zvláštního pole je blbost, protože všechny ovládací prvky na formuláři jsou v jeho kolekci Controls, ke které lze přistupovat buď pomocí názvu ovládacího prvku (Name) nebo indexu.

nahlásit spamnahlásit spam -1 / 1 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