Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

UserControl - embedovane winforms kontrole

[es] :: .NET :: UserControl - embedovane winforms kontrole

[ Pregleda: 439 | Odgovora: 5 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



Profil

icon UserControl - embedovane winforms kontrole01.05.2007. u 10:26

Zna li neko kako da "nateram" vizuelni editor (VS 2k5) da snima design-time promene na podkontrolama moje UserKontrole?

Napravio sam svoj UserControl, natrpao par standardnih WinForms kontrola i expose-ovao ih kao public properties. Kada stavim tu svoju kontrolu na npr. neku formu vidim lepo sve embedovane "podkontrole" u PropertyEditoru, ali posle save-a ili rebuilda sve promene se gube. Postoji li neki hint (one munje sa uglastim zagradama pre property definicije) koji bi ovo resio ili nesto slicno? Nadam se da je ovo resivo posto visual inheritance ne radi, ako i ovo ne radi onda doqrca im i alat i framework...

Poz.
01.05.2007. u 10:26 

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



Profil

icon Re: UserControl - embedovane winforms kontrole01.05.2007. u 12:21
Nasao sam

pre property definicije staviti [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)], npr.:
Code:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]        
public ToolStrip TopToolStrip { get { return topToolStrip; } }




01.05.2007. u 12:21 

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



Profil

icon Re: UserControl - embedovane winforms kontrole01.05.2007. u 13:05
Hmmm....jos jedan problem, na istu temu.

Izgleda da se nece serijalizovati svi propery-i podkontrola, cak i kada se koristi DesignerSerializationVisibility.Content.

Primer:
Imamo jednu UserControl-u i jedan TextBox na njoj (textBox). Zatim napravimo public property MyTextBox, gets textBox i ukljucimo DesignerSerializationVisibility.Content.

E sad, svaki TextBox ima property TabStop koji je po defaultu True, kada ga na nasoj UserControl preko PropertEditora postavimo na False onda ce se napraviti odgovarajuca linija u metodu UserControl.InitializeControls -> textBox.TabStop=False, i to "False" ce se boldovati u property editoru sto znaci da je non-default vrednost i da ce se overrideovati u pomenutom InitalizeControls. Za sada je to sve ok...

Kada takav UserControl stavimo na formu vidimo i MyTextBox kao jedan od property-a, i njegov property TabStop=False, koji je boldovan (!!!), jer je to non-default vrednost za TextBox.TabStop. Kada promenimo TabStop na True nece vise biti boldovan (!!!) i nece se napraviti linija TabStop=True u Form1.InitializeControls, jer true *jeste* default vrednost za TextBox.TabStop, i boze moj, sto bi se pravio "dodatni kod" za postavljanje vrednosti koja je ionako default.

Resenje je naravno rucno kucanje dodatnog koda za takve property-e, ali onda designer serijalizacija gubi svaki smisao, zasto su je onda uopste i implementirali ako radi polovicno? Drugo resenje bi bilo ne koristiti non-default vrednosti za property-e podkontrola, sto je jos gluplje...

Poz.
01.05.2007. u 13:05 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1677
*.maxre.bm.



Profil

icon Re: UserControl - embedovane winforms kontrole01.05.2007. u 15:05
Cestitam, otkrio si jos jedan od 31000 bagova u visual studiju 2005. (konfete)

Ako prijavis ovo kao 31001 bug, verovatno ces dobiti sledeci odgovor:
"We chose to not make the engineering effort it would have required to enable this scenario for VS 2005. This decision was not make lightly and we understand customers would like this functionality, but <ovde ubaci svoj problem> is extremely costly to address." i bug ce biti zatvoren uz njihovu veliku zahvalnost sto si poboljsao statistiku resenih bugova

Voleo bih i ja da ovako mogu da kazem svom sefu, valjda ako kazes da ti to mozes ali da je to tvoj izbor da ne uradis i da ti je mnogo zao i da si odluku doneo teska srca, onda je ok sto si nesposoban i lenj i sto si upropastio veoma vaznu funkcionalnost od koje zavisi gomila tvojih musterija i tako sebi kupio puno vremena da se bavis novotarijama i interesantnim stvarima kao sto je WPF umesto da pomognes ljudima koji su ti dali pare. Interesantno (ili ne )




▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
01.05.2007. u 15:05 

_v!rus_
BGD

Član broj: 40451
Poruke: 313
*.dsl.siol.net.



Profil

icon Re: UserControl - embedovane winforms kontrole01.05.2007. u 16:00
Pa dobro sad, sta je tu je

Mozda ce Orcas nesto poboljsati na temu tih 31000 bugova :evil grin
01.05.2007. u 16:00 

negyxo
Aleksandar Perkuchin
unknown

Član broj: 29751
Poruke: 635
*.sksyu.net.



Profil

icon Re: UserControl - embedovane winforms kontrole03.05.2007. u 17:53
Moze li jedno pitanje?

Zasto je to bug ako ne generise designer defaultne properties-e? Ja sam do sada mislio da je to normalno ponasanje.

A postoji i resenje da se isforsira generisanje bilo cega u designeru. Namesti se CodeDomSerializer za custom kontrolu i viola.
Only Time Will Tell
03.05.2007. u 17:53 

[es] :: .NET :: UserControl - embedovane winforms kontrole

[ Pregleda: 439 | Odgovora: 5 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.