Data Sources property drag&drop in Visual Studio 2005 (renamed)

Questo strano comportamento si verifica sia in C# che in VB: aggiungendo una nuova Object Data Source (per esempio una nostra classe di business) questa viene aggiunta alla finestra Data Sources e come si sa è possibile (bellisssssimo!!!) scegliere il tipo di controllo più adatto al tipo di proprietà e trascinare il campo sulla form in modo che VS crei per noi il controllo scelto, una label di descrizione (entrambi con nomi già "descrittivi")e crei il binding tra il controllo e la proprietà.

Il problema riscontrato é che la label di descrizione (mentre il controllo in binding stranamente no) viene dichiarato all'interno della InitializeComponents() invece che direttamente come membro della form e pertanto non è "raggiungibile" a design time dal codice scritto della form (per dirla in soldoni, l'intellisense non la elenca).

Sperando di non scrivere stupidate , l'istanza del controllo viene comunque mantenuta "viva" perchè viene aggiunta alla collezione Controls della form (che quindi referenzia quell'oggetto).

Per risolvere il problema, ovviamente, è sufficiente spostare la riga di creazione del controllo (o dei controlli) all'esterno della InitializeComponents(), meglio se insieme a quelle degli altri controlli presenti sulla form.

Dopo una (sinceramente breve) ricerca non ho trovato riferimenti a questo comportamento sul sito Microsoft. Comunque se qualcuno conosce già una segnalazione "ufficiale" in merito sarò ben lieto di aggiungerla al post.

UPDATE: Come segnalato da Igor in un commento, la causa di questo comportamento è che la label in questione viene creata con la proprietà GenerateMember = false, percui è sufficiente impostarla a true per ristabilire la "modalità" di default.

Print | posted @ venerdì 2 giugno 2006 22:13

Comments on this entry:

Gravatar # Re: Probabile piccolo bug in Visual Studio 2005
by Igor Damiani at 02/06/2006 22:25

credo sia normale. le label hanno la proprietà GenerateMember = False, e quindi non viene creata la variabile privata e quindi....niente Intellisense!
:-)
Gravatar # re: Probabile piccolo bug in Visual Studio 2005
by Mario Duzioni at 02/06/2006 22:50

no, se aggiungi dalla toolbar una nuova label, di default ha la proprietà GenerateMember a true (infatti il valore false viene visualizzato in grassetto).

Comunque non avendo mai utilizzato realmente GenerateMember = true non mi ero accorto di questo particolare!

In sostanza quindi sembra più una scelta degli sviluppatori (che comunque non condivido personalmente per un paio di motivi) che un bug.

Grazie, ciao!
Comments have been closed on this topic.