Zvláštne správanie   zodpovězená otázka

.NET

Dobrý deň,

1.Ak sa názov vlastnej komponenty(trieda dediaca z Control) zhoduje s názvom namespace, v ktorom sa projekt nachádza, tak mi Form Designer generuje nezkompilovateľný kód, ktorý pri každej zmene treba opravovať. Existuje nejaký spôsob opravy ?

2.Keď v tej komponente v OnPaint pomocou e.Graphics nakreslím na čierne pozadie obdĺžnik, zodpovedajúci e.CliRectangle, vidím na formulári iba dve jeho strany. Je možné takéto odsekávanie odstrániť, alebo musím vykresľovať komponentu do obdĺžnika o jeden pixel menšieho ?

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

1. Název třídy by se neměl jmenovat stejně jako namespace, v němž ta třída je. Mám dojem, že se to totiž ani nezkompiluje, protože by tím mohlo dojít k nejednoznačnostem. Pojmenujte třídu nebo namespace jinak.

2. Obdélník kreslete o 1 menší, ty 2 strany se do té ořezávané oblastni už nevejdou. Těžko říct, jestli je to chyba, nebo to tak má být.

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

1.Keď odstránim názov namespace, tak z vnútra toho namespace môžem normálne pristupovať k inej jeho triede, napr.

   Dim a As ProgressBarEx

iabže designer u neznámych príčin chce napísať

   Dim a AS ProgressBarEx.ProgressBarEx

a to sa nepáči kompilátoru a zvyšku Visual studia.Namespace som premenoval vo vlastnostiach projektu, pôvodné meno prebral od názvu assembly. to mám pomenovať assembly inak ako to, čo je v ňom dôležité ?

Taktiež ma teraz pri inom projekte ihneď po preložení počas spúšťania a pri každom načítaní projektu bombarduje asi 5 nesmyslami typu "Control has thrown an exception and was disabled" a až následne sa môžem presvedčiť o tom, že tie hlášky nie sú pravdivé.

Ten designer chce jeden štýl písania a akékoľvek malé odchíľky, ktoré kompilátor prežije nedovolí a píše tie svoje hlášky.Taktiež pridáva do kódu veci, ktoré nevie kompilátor prečítať, napr. bod 1.

2.

Aj som to tak spravil, ale pýtam sa tu, či nie je rozumnejšie riešenie.

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

1. Ono je to docela komplikované, vzhledem k tomu, že designer ten kód musí spustit, aby viděl, jak formulář či komponenta vypadá. Pokud v kódu odkazujete na něco, co je dostupné až za běhu programu, designer pak padá anebo dělá to, co nemá. Za určitých podmínek to prostě designer vykoukat neumí a musíte svůj styl psaní přizpůsobit, pokud chcete, aby fungoval.

Mimochodem dělat assembly, která obsahuje jenom jednu třídu, je podle mě naprostý nesmysl. A pokud už to tak musíte dělat, tak prostě namespace pojmenujte jinak než tu třídu a je to.

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

Keď skôr má designer problém s nastavovaním vlastností, ktoré definujem vo svojej triede a ono ich nastavuje a potom sa sťažuje, že System.Windows.Forms.Control nemá vlastnosť Value a pod.

Alebo napríklad aj to s tým namespace.Napíše si tam že objekt typu Niečo.niečo a potom sa sťažuje že trieda Niečo nemá nested triedu niečo . Neuvedomuje si, že netreba písať aj namespace, príp. keby napísalo Global.Niečo.niečo, ale nie, pre designer je proste zložité rozmýšľať, jednoduchšie je nechať programátora, aby po každej zmene opravoval názvy komponent.A teraz keď budem mať desať miest, kde to treba opravovať a budem vylaďovať farby metódou ako napr. pokus-omyl tak no ďakujem pekne že mám každú minútu opravovať to isté.

Neexistuje nejaký konkurenčný designer, ktorý by tieto blbosti nerobil?

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

Keď skôr má designer problém s nastavovaním vlastností, ktoré definujem vo svojej triede a ono ich nastavuje a potom sa sťažuje, že System.Windows.Forms.Control nemá vlastnosť Value a pod.

To je blbost, musel jste tu třídu udělat špatně. Tohle designer nedělá.

Konkurenční designer neexistuje (anebo o žádném použitelném nevím), jak vyřešit problém s namespacem jsem Vám poradil (nepojmenovávejte ho stejně jako třídu, nedělá se to a jsou s tím jenom problémy).

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

Tak verte neverte, ale už som zažil hlášky toho typu. Robí to len niekedy, ale už ma párkrát pokarhal designer za zmeny vo Form1.Designer.vb a pritom som ten súbor ani neotvoril. Keď na to ešte narazím, môžem tu dať link na kompletný projekt alebo PrintScreen, ak neveríte.

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