Změna vlastností label   otázka

VB.NET, WinForms

Dobrý den,

potřeboval bych poradit s následujícím problémem,

mám aplikaci která načítá data z PLC automatů ve formátu XML a následně ja zobrazuje ve formuláři v Labelu.

Proměnná např. teplota má za normálního stavu zobrazovat údaj 50-70 °C a při překročení mezi potřebuji toto graficky zobrazit ideálně pomocí labelTeplota.ForeColor , BackColor , a ještě bych chtěl Font na Bold.

Použil jsem zatím takovéto řešení :

LabelTeplota.Text = (a7 & " °C")
If a7 < 50 Then LabelTeplota.ForeColor = Color.Yellow
If a7 < 50 Then LabelTeplota.BackColor = Color.Red

ale chtěl bych se zeptat jak to udělat jednodušeji, neboť psát třeba u cca 80-i proměnných tento zápis je poměrně zdlouhavé a určitě se tyto vlastnosti barvy labelu dají zapsat jinak (třeba do nějaké třídy a na ní se potom vždy odkazovat jako v csc stylech v html), protože když budou naměřené hodnoty mimo nastavené meze chci stejnou změnu barev u všech cca 80-i labelu. bohužel nevím jak to provést.

Něco jako:

LabelTeplota.Text = (a7 & " °C"), If a7 < 50 Then Změna vlastnosti Labelu
LabelTlak.Text = (a8 & " kPa"), If a8 < 650 Then Změna vlastnosti Labelu

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

Já bych to řešil tak, že bych si udělal vlastní Control odvozený od Label, kterému bych přidal vlastnosti Hodnota a Horní a Dolní limit, dále pak ještě barva při překročení a nepřekročení limitu.

A při nastavování nové hodnoty do vlastnosti Hodnota bych si zkontroloval, jeslti nepřekračuje limity a podle toho bych měnil zabarvení textu.

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

Pro začátečníka bůže být jednodušší udělat si funkci, které předáte Label a hodnotu a ona jej nastaví.

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

A mohl by jste mi prosím napsat jak na to?

Děkuji Raška David

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

Ako argumenty funkcii(resp. na toto je lepšia tzv. procedúra) predáte Label a prípadne limity a farby.Ako telo procedúry poslúiži Váš kód s tým, že namiesto LabelTeplota, a7 a konštanty 50 dáte názvy parametrov.

Public Sub SetLabel(ByVal label As Label, ByVal a As Integer...) 'Namiesto ... doplňte ostatné parametre

'Príklad prístupu k parametrom(argumentom) funkcie
'Namiesto tohto uveďte kód, ktorý nastaví Label podľa Vašich požiadavkov
label.Text = a.ToString()

End Sub
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