Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Creazione di controlli a runtime con VB.NET

    Salve a tutti...

    Ho la necessità di creare una serie di controlli ListView a runtime in base ad un numero dipendente da una variabile che leggo all'inizio del progetto

    Mi potete fare un esempio di come si crea ?
    E' anche possibile poi posizionarli all'interno della finestra ?

    In alternativa se dovessi per forza disegnarli dall'IDE come mi conviene fare per sprecare meno risorse possibile ?

    Grazie
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  2. #2
    up
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  3. #3
    'dichiara la lista
    Private WithEvents lista As New ListView()



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    'aggiunge e sposta la lista
    Me.Controls.Add(lista)
    lista.Location = New Point(50, 50)

    End Sub

    Private Sub lista_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lista.Click
    MsgBox("ok")
    End Sub

  4. #4
    grazie per la risposta...però mi da quest'errore

    Error 1 Handles clause requires a WithEvents variable defined in the containing type or one of its base types.

    C:\Documents and Settings\Stefano\Impostazioni locali\Dati applicazioni\Temporary Projects\WindowsApplication1\Form1.vb 8 99 WindowsApplication1
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  5. #5
    Ho trovato l'errore!

    Il mio codice è giusto ma presuppone che tu crei un pulsante chiamato button1

    'dichiara la lista
    Private WithEvents lista As New ListView()



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'GUARDA QUESTA ISTRUZIONE

    'aggiunge e sposta la lista
    Me.Controls.Add(lista)
    lista.Location = New Point(50, 50)
    lista.Items.Add("ll")
    End Sub

    Private Sub lista_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lista.Click
    MsgBox("ok")
    End Sub


    Dopo handles c'è scritto button1.click il che presuppone che sul tuo form ci sia un pulsante chiamto button button1

    Ora ti presento una variante che crea la lista al caricamento del form

    'dichiara la lista
    Private WithEvents lista As New ListView()



    Private Sub lista_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lista.Click
    MsgBox("ok")
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'aggiunge e sposta la lista
    Me.Controls.Add(lista)
    lista.Location = New Point(50, 50)
    lista.Items.Add("ll")
    End Sub


    Fammi sapere se sei riuscito a farlo andare

  6. #6
    si ci sono riuscito ma c'era un altro errore.....

    ho corretto cosi

    codice:
    Public Class Form1
    
            'dichiara la lista 
        Private WithEvents lista As New ListView()
        Private WithEvents lista2 As New ListView()
    
        Private Sub lista_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            MsgBox("ok")
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'aggiunge e sposta la lista 
            Me.Controls.Add(lista)
            lista.Location = New Point(100, 50)
            lista.Items.Add("ll")
    
            Me.Controls.Add(lista2)
            lista2.Location = New Point(100, 250)
            lista2.Items.Add("ll")
    
        End Sub
    
    
    End Class
    Tu infatti avevi aggiunto una lista come LIST1 ma avendo dichiarato LISTA è quella che va aggiunta....ho fatto delle prove con un altra istanza di lista (lista2)....funziona.....GRAZIE!

    Ora però mi spiegheresti questo WithEvents a cosa serve ??
    E soprattutto....io devo dichiarare tanti LISTA quanti me ne servono in base ad un valore letto in un file XML....ammettiamo che siano 10 e che devo creare 10 LISTA....
    E' possibile crearli ciclicamente con un array o altro ? a me non riesce...
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  7. #7
    copia e incolla questo codice in un nuovo progetto windows e dimmi se ti va bene




    'dichiara la lista come array
    Private lista() As ListView


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim numelem As Integer = 6 'numero di liste da creare

    ReDim lista(numelem - 1) 'ridimensiona l'array

    Dim i As Integer

    For i = 0 To numelem - 1
    lista(i) = New ListView()
    'aggiunge e sposta la lista
    Me.Controls.Add(lista(i))
    lista(i).Location = New Point(lista(i).Width * i, 0)
    lista(i).Items.Add("prova")

    lista(i).Items.Add("Prova")

    'ora se vuoi gestire gli eventi per la lista i scrivi:
    'io ho messo un gestore comune ma tu puoi fare diversamente se ritieni necessario
    AddHandler lista(i).Click, AddressOf gestiscievento
    Next
    End Sub

    Sub gestiscievento(ByVal sender As Object, ByVal e As EventArgs)
    MsgBox("ok")
    End Sub

  8. #8
    mi da un errore
    Error 1 Value of type '1-dimensional array of System.Windows.Forms.ListView' cannot be converted to 'System.Windows.Forms.Control'.

    C:\ProjectNET\LAYN\LAYN\CreaOggetti.vb 42 27 LAYN
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  9. #9
    crea un nuovo prog windows, vai nel codice e copèia il codice che ho scritto io così com'è, FUNZIONA.

  10. #10
    Si hai ragione....funziona...

    Un ultima cosa se posso permettermi....

    Avendo disegnato prima un TabControl cosi come mi hai insegnato, e solo dopo disegno le Liste, mi vengono disegnate dietro al controllo TabControl....

    come posso fare per disegnarle sopra in modo che sembrino DENTRO al TabControl ? Oppure c'è un modo per dirgli che devono essere disegnate DENTRO al TabControl le mie Liste ?

    Grazie
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

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.