Windows Forms e designer di Visual Studio

Avete mai lavorato in VB6? Ricordate il designtime della form? Avevo letto da qualche parte che in VS.NET non é più così e ieri ne ho avuto conferma. Credo che ci sia un qualche metodo "nascosto" che avvia la form nella modalità di progettazione che ben conosciamo. Perché lo penso? Ho commesso una distrazione nell' override del metodo Dispose: al posto che richiamare il dispose della base ho creato un loop continuo chiamando Me.Dispose (this.Dispose();;-)) ed ho aperto la form nel designer. Fin qui tutto bene il problema é stato chiuderla: ogni volta che tentavo di chiuderla Visual Studio crashava... Vi garantisco che non é bello, soprattutto se avete appena salvato la soluzione e quindi la form si riapre al successivo avvio. Ci ho impiegato un po' a capire perché... :-)
Ma perché se metto un break nel costruttore non ci si ferma? Gira tutto sotto una Sub con l'attributo System.Diagnostics.DebuggerStepThrough? Perché se sollevo un eccezione nel costruttore il designer se ne infischia? Come posso disporre un oggetto che non ho creato?
Provo a mettere un paio di linee che dovrebbero rilevarmi un passaggio nel costruttore:

Dim FS As New System.IO.FileStream("c:\Trota.txt", IO.FileMode.OpenOrCreate, IO.FileAccess.ReadWrite)

FS.WriteByte(CType(DateTime.Now.Second, Byte))

FS.Flush()

FS.Close()

Niente, non ci passa!
L'Object Browser rivela un solo costruttore, quello di default. Qui gatta ci cova...
Anche Reflector non rivela altri costruttori (a parte uno shared che non mi pare centri).
Provo a mettere le stesse linee nella Sub InitializeComponent: il designer non va più.
Magari il designer analizza il codice della Sub InitializeComponent senza eseguirlo, una sorta di parsing (Ma perché fa il Dipose dopo?)...
Provo allora un tranello, creo una classe che eredita da TextBox, metto le 4 fantomatiche linee nel costruttore, sostituisco le stringhe: System.Windows.Forms.TextBox in MyTextBox, apro nel designer ...ehhhh, oplà: il file é creato!
Riassumo: i componenti vivono nel designer, la form ci muore senza mai nascerci... FORM ZOMBIE?!? Bel thriller! :-)

P.S. Qualcuno legge il mio blog? Mi fate sapere se vi é interessato questo post? Oggi é il mio onomastico, approfittatene per farmi gli auguri e vediamo se mi arrivano un po' di feedback!

Print | posted on mercoledì 29 settembre 2004 15:45

Comments on this post

# re: Windows Forms e designer di Visual Studio

Requesting Gravatar...
Va beh, forse é meglio che non faccio questi test e che regali qualche invito alla GMail anch'io...
Left by Michele Bernardi on ott 01, 2004 11:40
Comments have been closed on this topic.