Sto creando un controllo etichetta personalizzato (semplicemente ereditando il controllo Label standard e ridipintando lo sfondo e il testo) perché ho bisogno di uno sfondo e di un bordo molto specifici. Nel costruttore del controllo, ho impostato la proprietà AutoSize su false in modo da poter avere una dimensione predefinita standard per la nuova etichetta.Il controllo dell'etichetta si comporta in modo diverso in fase di progettazione rispetto al tempo di esecuzione
Public Sub New()
'Set the default size of the control to 75x24
Me.Height = 24
Me.Width = 75
'Turn off the autosize property.
Me.AutoSize = False
'Turn on double-buffering.
Me.DoubleBuffered = True
End Sub
Nella mia applicazione che utilizza questo controllo, se creo la nuova etichetta personalizzata in fase di esecuzione (in codice), la proprietà AutoSize rimane False, e funziona correttamente.
Se provo ad aggiungere la nuova etichetta personalizzata al modulo in fase di progettazione, viene fornita con la proprietà AutoSize impostata su True e devo impostarla manualmente su False nella finestra delle proprietà. Non è un problema enorme, ma non capisco perché il comportamento è diverso.
Qualche idea che cosa sta causando questa differenza di comportamento?
Come nota a margine, nel costruttore, impostare AutoSize su false prima di impostare Altezza e Larghezza. – NascarEd
@NascarEd, grazie per la nota. L'ho provato in entrambi i modi e non sembra fare la differenza. – Stewbob
Come nota a margine: dopo aver creato un controllo personalizzato, è sempre consigliabile scartarlo su un modulo ed esaminare il codice generato dal progettista. Il designer di solito fa cose che non ti aspetteresti. – NascarEd