Prirazeni komponent na form   zodpovězená otázka

Komponenty, Algoritmy, .NET

Zdravim,

Tvorim aplikaci do ktere za behu pridavam komponenty a formy z xml souboru(vzhled aplikace se tvori teprve za behu). Muj problem je v tom ze nemuzu prijit jak vydeklarovat form na ktery mam pridat komponentu, kdyz znam jmeno formu(momentalne to resim tak ze vytvorim form a pak na nej pridam komponenty, ale tento seriovy postup nebu pozdeji postacovat. Potrebuji aby se dali komponenty pridat na jaky koliv form.). Zjistil jsem jak pridat komponentu na dalsi kdyz znam jeji jmeno ale u formulare mi to porad nejde.

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

Nevím jestli jsem 100% pochopil, co chcete udělat, ale tady je kód jak vytvořit formulář, přidat na něj groupbox komponentu a do ní přidat tlačítko:


        ' deklaruj formular
        Dim formular As New Form()
        formular.Text = "Toto je formulář!"

        ' pridat na formular groupbox
        Dim groupBox As New GroupBox()
        groupBox.Size = New Size(200, 100)
        groupBox.Location = New Point(50, 50)
        groupBox.Text = "Tohle je groupbox!"
        formular.Controls.Add(groupBox)

        ' pridat na formular do groupboxu tlacitko
        Dim tlacitko As New Button()
        tlacitko.Text = "Ahoj"
        tlacitko.Location = New Point(50, 50)
        groupBox.Controls.Add(tlacitko)

        ' zobrazit formular
        formular.ShowDialog()
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Spis mi jde o to ze bych potreboval pridavat na formy(na jiz vytvorene formulare) komponenty, ale nazev toho fomru a udaje komponenty si stahnu z xml souboru. Jdemi o neco podobneho jako kdyz chci pridat komponentu na jinou u ktere znam nazev

Form.Controls["Stringovy_nazev_komponenty"].Controls.Add(komponenta)

Bohuzel nevim jak neco podobneho udelat u formu.

Tak jsem to prozatim vyresil tak ze jsem vydeklaroval promenou typu Form

 Form[] formular = new Form[20];

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

Pokud jste schope poskládat celý název datového typu formuláře (např. MojeAplikace.Form1), pak můžete instanci tohoto typu za běhu vytvořit takto:

Dim f As Form = DirectCast(Activator.CreateInstance("MojeAplikace.Form1", Form)

S vytvořeným formuláři musíte v kódu pochopitelně pracovat jako s datovým typem Form, když nevíte, jestli je to Form1 nebo Form2. Form je jejich společný předek.

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