combobox kontrola a   zodpovězená otázka

VB.NET

Zdravim.

Potrebujem nasledovne:

Mam 2 comboboxy - combo1 a combo2

Su naviazane na databazu cez datasouce.

Combo1 na nicom nezavisi, to znamena nic sa nekontroluje, proste sa vyberie zo zoznamu a hotovo.

Combo2 spusta kod, ktory zavisi od vyplnenej hodnoty combo1.

Potrebujem aby pred spustenim kodu si combo2 skontrolovalo ci je combo1 vyplnene, ak nie je ma hodit hlasku a nedovolilo robit ziadne zmeny v combo2.

Event validating podla mna nevyhovuje, kod sa musi spustit aj pri zmene combo2 cez program.

Ked dam kontrolu aj kod do SelectedIndexChanged tak ako zrusit pokracovanie aktualizacie naviazaneho datasouce? Nieco ako e.cancel = true

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

Do události DropDownClosed u ComboBox2 dejte podmínku

If (ComboBox1.SelectedValue = "") Then
MessageBox.Show("Chyba")
else
'provést příkazy
End If
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dakujem ale je tu problem.

Prikazy sa sice neprevedu ak je combobox1 prazdne ale hodnota v combobox2 je zmenena, nevrati sa do povodnej hodnoty.

Potrebujem aby sa combobox nezmenilo ak combobox je prazdne.

Obe comba su naviazane na databazu.

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

Odpoviem si sam, navrat povodnej hodnoty viem riesit tak, ze si ulozim povodnu hodnotu z databazy do premennej a ak je combobox1 prazdne tak ho ho vlozim do combobox2, cize obnovim hodnotu.

Ale chcem aby to fungovalo aj cez program, to znamena, aby kod v dropdownclosed spustilo aj ked sa pokusim vlozit novu hodnotu do combobox2 cez program.

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

Trošku nechápu, co myslíte tím:

"... vlozit novu hodnotu do combobox2 cez program."?

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

No combobox2 mozem ovladat dvoma sposobmi:

1. kliknutim mysou a vybratim z ponuky, prevedie sa dropdownclosed

2. vlozenim napr. combobox2.selectedvalue = "nieco"

Ten druhy pripad nespustia dropdownclosed, cize nezbehne kontrola ci combobox1 nie je prazdne.

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

Tam by asi mělo fungovat SelectedIndexChanged nebo SelectedValueChanged

to 2. vlozenim napr. combobox2.selectedvalue = "nieco" vkládáte přes nějakou funkci, nebo jak?

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

SelectedIndexChanged funguje, SelectedValueChanged funguje iba ak uzivatel zmeni hodnotu, cez program nie.

SelectedIndexChanged funguje aj ked sa priradzuje databinding, to som poriesil.

Je tam ale trocha problem s navratom tej povodnej hodnoty v combobox2.

Riesim to ulozenim povodnej hodnoty do premennej a tou v pripade potreby prepisem combobox2.

Lenze to znova vyvola SelectedIndexChanged.

Potrebujem presne to co robi SelectedIndexChanged ale ak je combobox1 prazdne combobox2 sa neuskutocnila a tiez aby nepokracovali dalsie eventy

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

Nevím, jestli je to "čisté" řešení, ale když "vracíte" původní hodnotu do toho ComboBoxu, dala by se tam "poslat" i nějaká další proměnná a v SelectedIndexChanged udělat podmínku na tuto "dodatečnou" proměnnou. Pokud by se ta proměnná shodovala, provedl by se příkaz...

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

Ta promenna to riesi, uz mi to funguje ako chcem.

Dakujem za pomoc.

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

To jsem rád. Nicméně někdo znalejší by to asi řešil nějak elegantněji...

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