Dynamický formulář   otázka

VB.NET

Dobrý den,

potřebuji poradit jak udělat následující:

mám třídu (UserControl) "UC_otazka" v ní je nadefinován Label "Otazka" a Texbox "Odpoved" (+pár dalších, ale to neni momentálně důležité)

mám formulář, na který je přidávána tato třída takto:

 Dim otazka As New UC_otazka
 otazka.Location = New System.Drawing.Point(1, 66)
 otazka.otazka = "xxxxxx"
 otazka.odpoved = ""
 Me.Controls.Add(otazka)

Toto mi funguje bez problémů. Ale já bych potřeboval, na formulář doplnit n těchto tříd pod sebe podle toho, kolik otázek načtu z databáze. Jak to lze provést? A následně obsluhovat?

Děkuji Přemek

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

Tak si všechny otázky dejte např.do seznamu a pak jej pomocí foreach přidejte do formu.

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

Jak jinak než v cyklu. Nezapomeňte v každém průchodu zvětšit X-ové souřadnice nového ovládacího prvku o příslušnou hodnotu. Asi také bude nutné u kontejneru těchto prvků (Form) nastavit vlastnost AutoScroll = True, aby se v případě, kdy se tam prvky nevejdou zobrazily posuvníky. Také bych místo tohoto způsobu zvažoval DataGridView nebo ListView.

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

Děkuji za odpověď, ale nejsem z ní úplně moudrý. Jak to lze udělat v cyklu? Nevím jak nastavím jméno, když tento kód dám do cyklu, tak při druhým průběhu mi to skončí na řádku

Dim otazka As New UC_otazka

na chybu, jelikož tato proměnná již existuje.

Děkuji

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

Nevíte ani základy, nastudujte je.

V cyklu myslím samozřejmě procházení množiny dat, ze kterých se ovládací prvek tvoří.

'...načíst data z databáze do questions
For Each question In questions
  Dim questionControl As New QuestionControl
  AddHandler questionControl. ..., AddressOf ...
  questionForm.Top = ...
  questionForm. ... = question
  mainForm.Controls.Add(questionControl)
Next

A nechápu proč nepoužijete DataGridView a DataBinding, určitě tam nemáte žádná data nebo metody, kvůli nimž by bylo nutné vytvářet vlastní ovládací prvek.

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

Děkuji za odpověď,ten už si s tím poradím.

Co se týká DataGridView a DataBinding, tak u toho nevím. Je to dělané pro Windows mobile, a tam mají tyto prvky jistá omezení. Navíc je součástí třídy i pořizování fotek a pak pár analýz odpovědi. Asi by to šlo předělat do tohoto (všechno jde, když se chce), ale tato třída je již vytvořená dávno, tak proč toho nevyužít.

ještě jednou děkuji

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