Dědičnost formulářů   zodpovězená otázka

VB.NET, WinForms

Dobrý den, prosím o radu, jak lze využívat dědičnost formulářů.

Mám verzi VB 2005 Express Edition a nevím si rady s děděním formulářů. Pokud jde o dědění v programovém kodu, tak zde není problém. Horší to je ale s děděním v návrhovém režimu.

Mám vytvořenou bázovou třídu formuláře a nyní potřebuji v jiném projektu zdědit formulář z této bázové třídy. Postupuji následovně:

1. Jsem nastaven na novém projektu, kde chci zdědit formulář a pravým tlačítkem myši vyvolám volbu "Add"

2. Nyní mám nabídku několika možností pro přidání nové třídy do projektu, mimo jiné např. "Add Windows Forms...". V helpu je však popsáno, že je třeba spustit volbu "Add Inherited Form". Mně však tato volba v nabídce chybí.

Nevím tedy, jestli je chyba v nějakém nastavení - viz menu Tools nebo jestli třeba verze VB 2005 Express Edition neumožňuje vůbec dědit formuláře.

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

Dobrý den. Mám ten samý problém. Ve verzi express, co je zdarma mi také chybí "Add Inherited Form...", ale ve VS 2005 express již všechny tato volba je. Koupil jsem si knihu VB krok za korkem, kde sice v knize o této možnosti, jak zprovoznit dědičnost formuláře, něco je, ale ztroskotal jsem právě na této volbě v Add. Taktéž prosím o radu.

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

Žádné VS 2005 express NEEXISTUJE. Existují pouze zdarma Express verze jednotlivých jazyků a potom placené verze integrovaného vývojového prostředí Visual Studio Standard, Professional a Team System.

Nevím jak je to v Express verzích, ale v normálním Visual Studiu je vizuální dědičnost v nabídce Add.../New Item.../Windows Forms/Inherited Form. Z vlastních zkušeností vám můžu říct, že vizuální dědičnost je k ničemu, možná tak na nějaké extrémně jednoduché věci.

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

Pokud není dědičnost formulářů až tak výhodná, tak prosím o radu, jak mám vyvíjet složitý projekt, který má následující charakteristiky:

- obsahuje několik set formulářů

- každý formulář by měl mít určité standartní vlastnosti jako je např. barva písma, barva pozadí, standartní název formuláře v hlavičce, logo firmy, některé standartní ovládací tlačítka, která jsou použitelná v celém projektu apod.

- vytvořený projekt nebude v podstatě nikdy uzavřen. Kdykoliv v budoucnu může dojít k tomu, že budu chtít změnit standartní vzhled všech formulářů, či přidat nebo odebrat některé standartní tlačítka. Pokud budu mít vytvořenou bázovou třídu, stačí aktualizovat tuto bázovou třídu a všechny formuláře jsou opraveny.

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

"několik set formulářů" - to má být vtip?

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

To není vtip, v předcházející verzi Visual Basic 6.0 mám v celém projektu 194 formulářů a to není ani polovina, co bych chtěl převést a naprogramovat pod Visual Basic.NET.

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

A mohu vědět k čemu potřebujete tolik formulářů a ještě k tomu je vizuálně dědit? Pracuji na poměrně rozsáhlem projektu který se skládá z asi 15 Assembly, má přes 600 000 řádků kódu a obsahuje celkem asi 50 formulářů...

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

Tato volba v Express edici není. Naštěstí to lze velmi obejít. Otevřete si kód formuláře a upravte definici třídy formuláře. Místo třídy Form vepište jméno objektu Vašeho formuláře ze kterého chcete dědit.

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

Ještě bych se zeptal, zda jste myslel že se bude upravovat kód formuláře vytvořený designerem. Tam je totiž původní definice Inherits System.Windows.Forms.Form.

Zkusil jsem si vytvořit jakousi šablonu pro formuláře, na které mám pět komponent Datagridview (u všech je nastavena hodnota AutoGenerateColumns na True a všechny sloupce se vytvářejí na základě podkladového DataSource při běhu programu)a pár Buttonů. Tato výbava má zajišťovat základní funkcionalitu a bude pro všechny další formuláře shodná. Pak jsem založil prázdný nový formulář a provedl přepsání definice třidy dle návodu. Zpočátku se vše jevilo pěkně, zděděný formulář obsahoval "zamčené" komponenty svého předka, šel spustit, daly se do něj přidávat další komponenty při zachování funkcionality bázové třídy. Ale v jednom okamžiku se "sám" změnil kód vytvářený designerem v tom smyslu, že tam přibyla hromada komponent typu DataGridViewTextBoxColumn, které evidentně podle názvů pocházely z datového zdroje, jenž se do jednotlivých DataGridVieW načetl při spuštění programu. Je to pro mě velká záhada. Díky za případnou odpověď.

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