Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    2

    [VB .Net] Array di textbox

    Salve a tutti del forum! Sono nuovo e questa è la mia prima domanda
    Sono riuscito a scrivere questo codice, che mi permette di aggiungere dinamicamente in un Form quante textbox sceglie l'utente grazie ad un NumericUpDown.
    Dato che voglio utilizzare gli array di textbox creati anche nel resto del codice li ho dichiarati come globali, solo che ricevo un'eccezione a "vmateriali(i) = materiali", "Indice oltre i limiti della matrice". Cosa devo fare?

    codice:
    Dim materiali, quantità, prezzo, importo As New TextBox
        Dim n As Integer
        Dim vmateriali(n) As TextBox
        Dim vquantità(n) As TextBox
        Dim vprezzo(n) As TextBox
        Dim vimporto(n) As TextBox
        
        Private Sub Button1_Click
    
    
            '~~> NumericUpDown
    
            n = NumericUpDown1.Value
            NumericUpDown1.Minimum = n
    
            '~~> Dichiarazione valore ascissa delle txt
    
            'Codice inutile x la domanda
    
            '~~> For per inserire nel Form quante txt richieste dall'utente
            
            For i = 1 To n
                If n = 0 Then
                    Exit For
                End If
                materiali = New TextBox
                quantità = New TextBox
                prezzo = New TextBox
                importo = New TextBox
    
                ' Formattazione delle textbox create
    
                materiali.Name = "txtMateriali" & i
                vmateriali(i) = materiali
    
                ' Formattazione delle textbox create
                quantità.Name = "txtQuantità" & i
                vquantità(i) = quantità
    
                ' Formattazione delle textbox create
                prezzo.Name = "txtPrezzo" & i
                vprezzo(i) = prezzo
    
                ' Formattazione delle textbox create
                importo.Name = "txtImporto" & i
                vimporto(i) = importo
    
                '~~> Aggiunta dei nuovi controlli
                Me.Controls.Add(materiali)
                Me.Controls.Add(quantità)
                Me.Controls.Add(prezzo)
                Me.Controls.Add(importo)
    
            Next 
        End Sub
    Grazie per la disponibilità!

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    secondo me accade perché quando dichiari vmateriali(n) n non ha valore e quindi il limite massimo della matrice è appunto 0
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    2
    Come faccio a dare un valore a n, se è una variabile globale? Nel codice ho scritto infatti n = NumericUpDown1.text, ma non posso scriverlo sopra la sub. Grazie per l'aiuto

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    codice:
        Dim ogg() As TextBox
    
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim n As Integer = 10
    
    
            ReDim ogg(n)
    
    
            For i = 1 To n
                ogg(i) = New TextBox()
    
    
                ogg(i).Name = "QuelloCheVuoi_" & i.ToString()
                ogg(i).Text = ogg(i).Name
                ogg(i).Location = New Point(i * 20, i * 20)
    
    
                Me.Controls.Add(ogg(i))
            Next
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.