Originariamente inviato da jabjoint
Ciao, ho creato un controllo dinamicamente cosi':
codice:
friend WithEvents tBmaggiore As System.Windows.Forms.TextBox
Private Sub tBmaggiore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tBmaggiore.Click
Msgbox "premuto"
End Sub
sub crea()
Dim tbmaggiore As New Control()
tbmaggiore = New TextBox()
tbmaggiore.Text = "100"
tbmaggiore.Location = New Point(10, 10)
Me.Controls.Add(tbmaggiore)
AddHandler tbmaggiore.Click, AddressOf tBmaggiore_Click
controlloCreato=true
end sub
sub leggi()
if controlloCreato=true then
msgbox tbmaggiore.text
end if
end sub
Quando chiamo la procedura leggi dopo avere creato il controllo ottengo un errore che mi dice:
Riferimento a un oggetto non impostato su un'istanza di oggetto.
Teoricamente l' ho creato l' oggetto, dove sbaglio?
Hai un po le idee confuse su come si aggiunge un controllo dinamicamente.
Prima di tutto su dichiari gli eventi con AddHandler è inutile dichiarare la textBox con WithEvents,come inutile è la variabile controlloCreato.
Il tuo codice diventa:
codice:
Dim tBmaggiore As TextBox
Private Sub tBmaggiore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox("premuto")
End Sub
Sub crea()
tBmaggiore = New TextBox()
tbmaggiore.Text = "100"
tbmaggiore.Location = New Point(10, 10)
Me.Controls.Add(tbmaggiore)
AddHandler tbmaggiore.Click, AddressOf tBmaggiore_Click
End Sub
Sub leggi()
If tBmaggiore IsNot Nothing Then MsgBox(tBmaggiore.Text)
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
crea()
End Sub
:ciauz: