Diskuze: Obnovení tlačítek, pokud už bude dostupné aspon jedno COM zařízení
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Je jedno jakou logiku použiješ, jestli else if
(CmbCisloPortu.SelectedIndex != 0) ... NEBO zkusit tohle?:
(CmbCisloPortu.SelectedValue == true)
Jen to musíš dát za tu závorku a ne to řešit v catch (Exception), pak to
nemůže nikdy nastat, ne? Když očekávaš tady že nemáš žádný port a
zároveň když je označený port, tak ukázat button
Veil> Díky za rady, ale nejsem si jistý, zdali jsem tě pořádně a
správně pochopil, nebo zdali jsem správně vysvětlil svůj problém.
Jde mi totiž o to, že když spustím program a nebude dostupné žádné COM
zařízení, tak aby zakázal ten Button.
V případě ale, že když po spuštění programu připojím nějaké fyzické
zařízení a kliknu na Obnovit, tak se mi nový COM port ukáže, to funguje,
ale už mi nechodí, aby zároven s tím se mi ten Button zpřístupnil a byl
znovu aktivní.
Pokud bych klikl na tlačítko Obnovit a žádný COM port by nebyl stále
dostupný, aby ten Button byl pořád zakázaný.
To jsem chtěl ošetřit v tomto vlákně "Obnovit seznam portů", jenže se mi
to stále nedaří.
Zatím mi funguje jen podmínka:
if (CmbCisloPortu.SelectedValue == null)
{
BtnTlacitko.Enabled = false;
Snad jsem to už vysvětlil správně.
Ahoj,
to by se dalo celkem jednoduše zařídit. Jednoduše se podíváš na počet
itemů v comboboxu: CmbCisloPortu.Items.Length.
V kódu by to mohlo být asi nějak takhle:
BtnTlacitko.Enabled = CmbCisloPortu.Items.Length != 0;
Petr> Díky za tip.
Jen mi to hází chybu, že pro Length chybí nějaký using, ale to nevím,
jaký by měl být.
Jsem ještě pořád takový "pokročilý" začátečník, takže ještě hodně
věcí neznám.
V C# nedělám. Ta kolekce Items by měla být schopná vrátit počet prvků, tak si to vygoogli jak na to.
Já to pochopil že chceš ten button zobrazit jen když máš nějaký com port vybraný, ne když tam nic není.
if (CmbCisloPortu.SelectedIndex > -1) BtnTlacitko.Enabled = true;
else BtnTlacitko.Enabled = false;
Jinak to lze také udělat, jen jestli v cb něco je.
if (cbCisloPortu.Items.Count > 0)
BtnTlacitko.Enabled = true;
else
BtnTlacitko.Enabled = false;
Pokud bych klikl na tlačítko Obnovit a žádný COM port by nebyl stále dostupný, aby ten Button byl pořád zakázaný.
Tady to píše, že chce mít možnost kliknout na tlačítko pouze, pokud existují nějaké COM porty.
Jinak díky za opravení mého kódu.
Veil a Petr> Chci to ošetřit tak, že když není žádný Com port, tak
aby tlačítko Button bylo Disabled.
Pokud ale by se za běhu programu připojilo nějaké zařízení a v CmbBoxu
už bych měl např. min. jeden Com port, tak po kliknutí na na tlačítko
Obnovit, aby se mi objevil daný Com port v CmbBoxu - to funguje -, ale také
zároven aby se mi rozsvítilo to tlačítko Button a bylo aktivní, jinak
ne.
Veil> Tak to tvoje poslední řešení mi stejně nefunguje, takže chyba
bude ještě někde jinde, ale moc ti děkuji za snahu ... (y)
Zobrazeno 11 zpráv z 11.