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

    [VB.net] creazione controlli runtime

    Salve a tutti

    Sono Fabio

    devo inserire diversi controlli dinamicamente in una form
    in cui ho un contenitore flowlayout...
    inoltre per ogni controllo devo aggiungere
    una routine evento chiamata Prova_click

    codice:
    Public Class Form3
    
    
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim count As Integer 
    Dim btn As New Button
    For count = 1 To 5
    
      With btn
      .Name = "Bottone" & count
      AddHandler .Click, AddressOf Prova_click
      End With
      FlowLayoutPanel1.Controls.Add(btn)
      Next
    End Sub
    
    Public Sub Prova_click()
     MsgBox("ciao")
    End Sub
    ma ottengo una form con un solo controllo visibile
    la cui pressione genera 5 volte la MsgBox

    Per quanto riguarda la creazione dei 5 bottoni ho provato così
    e i bottoni vengono creati perfettamente:
    ma non sò come ciclare correttamente anche la assegnazione della routine eventi
    codice:
     Dim count As Integer 
    
    For count = 1 To 5
       FlowLayoutPanel1.Controls.Add(New Button with {.name= "Bottone"& count})
      Next
    End Sub
    sapreste indicarmi la retta via ?

    grazie anticipatamente per l'aiuto

  2. #2

    [Risolto]

    bè forse mi spiego come un libro chiuso lo sò
    anche questo è un problema...
    spero di migliorare

    comunque in definitiva ...ho risolto
    capendo dove sbagliavo :
    posto il codice aggiornato
    con cui ho risolto i problemi
    praticamenti ho spostato la dichiarazione
    del nuovo oggetto btn (new btn as Button)
    all'interno del ciclo for così:

    codice:
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim count As Integer
      For count = 1 To 5
      Dim btn As New Button '' ho spostato la Dichiarazione Variabile qui
      With btn
      .Name = "Bottone" & count
      AddHandler .Click, AddressOf Prova_click
      End With
      FlowLayoutPanel1.Controls.Add(btn)
      Next
    End Sub
    Public Sub Prova_click()
    
     MsgBox("ciao")
    
    End Sub
    adesso all'avvio della form ottengo 5 bottoni tutti collegati all'evento Prova_click

    grazie comunque e a presto !!!

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.