+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Creazione dinamica controlli

  1. #1
    perseo74 non è in linea Scolaretto
    Post
    82
    Like Inviati  
    0
    Like Ricevuti  
    0
    Buongiorno a tutti vorrei chiedere il vostro aiutoper risolvere e avere qualche informazione sull'aggiunta dinamica di controlli.Sulla mia form io ho diversi tipi di oggetti label,txtbox.combobox disposti su una riga dopo determinati eventi io dovrei creare dinamicamente da codice una nuova riga di controlli aventi tutti le stesse proprieta e posizione io ho scritto il seguente codice però non vedo creare nessun controllo e non mi viene generato alcun errore:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim checkcontrol As Control
            Dim checkcontrol1 As Control
            Dim checkname As String
            Dim i As Integer
            For Each checkcontrol1 In Me.Controls
                x1 = checkcontrol1.Location.X
                y1 = checkcontrol1.Location.Y + 100
                contHeight = checkcontrol1.Height
                If TypeOf checkcontrol1 Is TextBox Then
                    checkcontrol = New TextBox()
                ElseIf TypeOf checkcontrol1 Is ComboBox Then
                    checkcontrol = New ComboBox()
                ElseIf TypeOf checkcontrol1 Is Label Then
                    checkcontrol = New Label()
                End If
                checkname = checkcontrol1.Name
                checkcontrol.Name = checkname & "1"
                checkcontrol.Location = New Point(x1, y1)
                checkcontrol.Height = checkcontrol1.Height
                checkcontrol.Width = checkcontrol1.Width
                Me.Controls.Add(checkcontrol)
            Next
    end sub
    
    potreste dirmi anche come recuperare i valori delle proprieta dai controlli creati dinamicamente per esempio il campo text

  2. #2
    L'avatar di bumm
    bumm non è in linea Topo di biblioteca Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Post
    2,140
    Blogs
    1
    Like Inviati  
    0
    Like Ricevuti  
    0
    Sicuro di non aver inserito i controlli in un'altro controllo contenitore(es panel o groupbox). In quel caso invece di Me.Controls devi fare Panel.Controls o GroupBox.Controls
    Inoltre il controllo che crei e della stessa dimensione e nella stessa posizione del controllo da quale prendi le impostazioni, quindi non so cosa vorresti ottenere.
    Per recuperare le proprietà dei controlli creati dinamicamente, dovresti assegnarli durante la creazione un nome. Quando decidi di accedere al controllo, basta che fai lo stesso ciclo sulla proprietà Controls del contenitore (Form, Panel, Groupbox o altro) e confronti i nomi con il nome che desideri trovare.
    ℹ️ Leggi di più su bumm ...

  3. #3
    L'avatar di Cteniza
    Cteniza non è in linea Amanuense
    Post
    4,378
    Blogs
    36
    Like Inviati  
    0
    Like Ricevuti  
    0
    Non ho provato la cosa ma a prima vista noto che tu non hai creato dei tipi "corretti" ma il loro antenato comune "control".
    Hai messo infatti:
    dim checkcontrol as control
    e più avanti hai instanziato un oggetto control utilizzando il tipo textbox, combobox, label a seconda dei casi.
    Suppongo che sia proprio questo il problema
    ℹ️ Leggi di più su Cteniza ...

  4. #4
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Post
    1,399
    Like Inviati  
    0
    Like Ricevuti  
    21
    Secondo me, se ho capito bene l'esigenza, sarebbe più opportuno creare uno UserControl che contenga al suo interno l'insieme dei controlli che devono essere creati dinamicamente, cioè quelli appartenenti alla "riga" che l'utente vuole aggiungere all'interfaccia.

    Supponendo che questi controlli abbiano un legame e una logica che li metta in collaborazione, scriverla nel codice dello UserControl e creare dinamicamente istanze di quest'ultimo, invece dei singoli controlli separati, credo possa essere più proficuo e comodo da mantenere.

    Per realizzare poi la "riga", sarebbe sufficiente inserire il controllo personalizzato all'interno di un FlowLayoutPanel o TableLayoutPanel (a seconda della disposizione che si vuole ottenere).

    Ciao!
    ℹ️ Leggi di più su _alka_ ...

  5. #5
    GigiSoft non è in linea Novello
    Post
    4
    Like Inviati  
    0
    Like Ricevuti  
    0
    Salve,

    all'interno della classe form a cui il controllo deve appartenere, devi:

    1) dichiarare il controllo come membro del form;
    2) crearne un'istanza;
    3) aggiungerlo tra i controlli del form;

    se poi devi gestire un evento del controllo, per esempio il click, sempre all'interno della classe form, devi:

    1bis) definire una Sub, con parametri appropriati, che gestira' l'evento;
    2bis) aggiungere tale funzione al controllo come handler dell'evento;

    piu'o meno cosi'

    Public Class Form1
        Private P As PictureBox           '1) dichiarazione di un controllo picturebox, per esempio
    
    [...]
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    [...]
    
          P = New PictureBox              '2) creazione della istanza
    
          Me.Controls.Add(P)              '3) aggiunta del controllo al form
    
          AddHandler P.Click, AddressOf Me.MyPictureClick         '2bis) aggiunta dell'handler al controllo
    
    [...]
    
    End Sub
    
    
    '1bis) definizione della funzione che gestira' l'evento click del picturebox
    Sub MyPictureClick(ByVal sender As Object, ByVal e As System.EventArgs)
    [...]
    End Sub
    
    Saluti.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 10
    Ultimo Post: 14-01-2015, 21:00
  2. creazione dinamica controlli
    Da misonsan nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 10-03-2011, 18:56
  3. creazione controlli in maniera dinamica
    Da misonsan nel forum Microsoft Word
    Risposte: 5
    Ultimo Post: 27-02-2011, 16:13
  4. creazione dinamica di un form
    Da gismo nel forum Visual Basic 6
    Risposte: 9
    Ultimo Post: 05-09-2008, 13:22
  5. [vb6] creazione dinamica array
    Da raf1971 nel forum Visual Basic 6
    Risposte: 9
    Ultimo Post: 05-04-2008, 17:37