Inherited form - problém se změnou velikosti potomka   zodpovězená otázka

VB.NET, WinForms, Grafika

Dobrý den,

stojím teď před realizací nového projektu založeného na Windows forms aplikaci, který budu tvořit ve Visual Basicu (VS2008).

Vzhledem k tomu, že v tomto projektu bude větší množství dialogů, které budou mít mnoho společných vlastností a prvků, rozhodl jsem se vytvořit jeden form jako BaseDialog, na který umístím všechny prvky, jenž se budou vyskytovat i v ostatních odvozených formech.

BaseDialog jsem vytvořil a poté jsem do projektu přidal nový dialog odvozený od BaseDialog, který jsem pouze modifikoval tak, že jsem do něj přidal další tlačítka a jiné prvky. Vše pracuje podle očekávání až na jednu nepříjemnost.

Pokud totiž odvozenému dialogu v návrhovém zobrazení změním velikost, všechny prvky, které jsou součástí BaseDialogu se podle očekávání posunou tak, jak to opdovídá nastavení jejich vlastností Anchor. Potud je vše v naprostém pořádku.

Pokud ale nyní takto zvětšený odvozený formulář uložím a zavřu a poté opětovně v návrhovém prostředí otevřu, formulář se zobrazí ve správném zvětšení (ve správné velikosti), ale všechny prvky, které jsou součástí BaseDialogu se vrátí na původní místo přesně podle definice základního formu.

Tzn. odvozený formulář ignoruje nastavení pozic svých prvků a přejímá jejich pozice z definice základního formu, což je v mém případě nežádoucí.

Můžete mi prosím poradit, kde dělám chybu, případně co mám změnit? Potřeboval bych, abych měl možnost měnit velikost odvozených formulářů, ale aby současně s tím správně fungovala vlastnost Anchor všech prvků.

Děkuji mnohokrát

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

Chování zděděných ovládacích prvků v odvozené třídě záleží na jejich "viditelnosti" v základní třídě. Pokud nastavíte ovládacím prvkům v základní třídě vlastnost Modifiers na Protected Friend, potom půjdou měnit jejich vlastnosti (což znamená i přesouvat je jinam) v odvozené třídě.

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

Skvělé! To je přesně ono.

Jako vždy jste dobře poradil.

Mnohokrát Vám děkuji pane Linhart.

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