Ho creato una classe ereditata da System.Windows.Forms.TextBox:
Public Class TextBox_Modificata
Inherits System.Windows.Forms.TextBox
[... proprietà, variabili e procedure varie]
End Class
Ciò che sto cercando di fare è applicare questa classe ad una TextBox già esistente nella maschera, senza dover eliminare la TextBox già esistente e crearne una nuova con la classe TextBox_Modificata e ricopiarle dentro tutti i parametri della TextBox eliminata.
Ho già visto che il compilatore non mi fa storie nel ridichiarare la textbox:
' Casella è la TextBox creata nella maschera
Casella = New TextBox_Modificata
A questo punto l'oggetto Casella continua a comportarsi come una TextBox e non come una TextBox_Modificata. Ho provato a richiamare i vari metodi come Update e Refresh, ma senza risultato. Mi ricordavo (forse a torto) che esisteva una volta il metodo Redraw, che potrebbe fare al caso mio, ma non mi viene proposto.
Chiedo se qualcuno di voi ha qualche idea in merito.
Grazie.
-------------------------------
AGGIORNAMENTO DEL 05-02-2013
Ho risolto in questo modo:
Private Sub Sostituzione
Me.Controls.Remove(Casella)
Nuova_TextBox(Casella)
Me.Controls.Add(Casella)
End Sub
Private Sub Nuova_TextBox(ByRef Oggetto As TextBox)
Dim Provvisoria As New TextBox_Modificata
Provvisoria.AcceptsReturn = Oggetto.AcceptsReturn
Provvisoria.AcceptsTab = Oggetto.AcceptsTab
Provvisoria.AccessibleDefaultActionDescription = Oggetto.AccessibleDefaultActionDescription
[... continuo proprietà...]
Provvisoria.Visible = Oggetto.Visible
Provvisoria.Width = Oggetto.Width
Provvisoria.WordWrap= Oggetto.WordWrap
Oggetto = New TextBox_Modificata
Oggetto.AcceptsReturn = Provvisoria.AcceptsReturn
Oggetto.AcceptsTab = Provvisoria.AcceptsTab
Oggetto.AccessibleDefaultActionDescription = Provvisoria.AccessibleDefaultActionDescription
[... continuo proprietà...]
Oggetto.Visible = Provvisoria.Visible
Oggetto.Width = Provvisoria.Width
Oggetto.WordWrap= Provvisoria.WordWrap
End Sub
Funziona, ma non è assolutamente ottimale. A questo punto chiedo se c'è un modo di inserire un ciclo all'interno della procedura Nuova_TextBox che mi permette di copiare le proprietà senza doverle scrivere a mano una ad una.