Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    errore nel leggere testo da un controllo creato dinamicamente

    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?
    jabjoint

  2. #2
    Ho visto solo ora che hai aperto 2 discussioni per lo stesso problema: non è permesso dal Regolamento.

    Comunque metti questa linea al di fuori delle procedure (per intenderci, sotto alla dichiarazione WithEvents): Dim tbmaggiore As New Control()


    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970

    Re: errore nel leggere testo da un controllo creato dinamicamente

    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:
    Sbagliare è umano, perseverare è diabolico.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Linguaggio? Versione?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Grazie mille!
    jabjoint

  6. #6
    Originariamente inviato da jabjoint
    Grazie mille!
    Prego

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.