Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    35

    [VB] Matrice di controlli e problemi

    Salve a tutti e come sempre ringrazio utti coloro che mi aiutano.

    Il mio problema è il seguente e non so neppure se mi riuscirò a spiegare, comunque ci provo:

    Ho una matrice di controlli text(I)
    In una casella di testo gli scrivo 5 e sul form mi compaiono 5 textbox, una vicino l'altra.
    Adesso io vorrei scrivere in un'altra casella di testo per quante volte deve ripetere la stessa cosa però sotto le precedenti.

    Spiego anche in un altro modo:

    text1.text = 5
    ' Sul form compaiono in orizzontale 5 textbox
    text2.text = 5
    ' Sul form dovrebbero comparire sotto alle precedenti
    ' 5 righe con 5 textbox.
    Come si fa?
    Questo è il mio codice:

    Private Sub Form_Load()

    On Error GoTo err

    Text1(0).Height = Form1.Text4.Text
    Text1(0).Width = Form1.Text3.Text



    I = Form1.Text2.Text
    For I = 1 To Form1.Text2.Text - 1


    Load frmLabel.Text1(I)


    With frmLabel.Text1(I)
    .Top = 0
    .Left = .Width * I

    .Visible = True
    .Text = I + 1
    End With

    Next

    err:
    End Sub
    ' Questa parte qui funziona ed è il primo pezzo diciamo le colonne
    ' Per le righe non c'è modo che io ci riesca
    PER FAVORE AIUTATEMI
    GRAZIE, DAVIDE

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    Ciao Davide.
    Non è che abbia capito bene il tuo problema

    cmq..

    - In una form crea una casella di testo (Text1)
    - Nella proprietà index di Text1 scrivici "0"
    - Crea una casella di testo e chiamala "txtNColonne"
    - Aggiungici anche un CommandButton (Command1)

    Prova a copiare il codice e poi scrivimi cosa ti serve cambiare.
    Fammi sapere!
    Ciao.

    Dim NewRow As Integer
    Dim NewCol As Integer
    Private Sub Command1_Click()
    On Error Resume Next
    NewCol = 0
    For i = 1 To txtNColonne
    Load Text1(Text1.Count)
    Text1(Text1.Count - 1).Top = NewRow
    Text1(Text1.Count - 1).Left = NewCol
    Text1(Text1.Count - 1).Visible = True
    NewCol = Val(NewCol) + Val(Text1(0).Width)
    Next i
    NewRow = Val(NewRow) + Val(Text1(0).Height)
    End Sub

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    .... dimenticavo.
    text1(0) rendilo invisiblile....

  4. #4
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    non l'ho provato.....provalo tu........... l'ho scritto a runtime


    Private Sub Command1_Click()
    NewCol = 0
    For i = 0 To txtNColonne
    if i=0 then
    Load Text1(i).text
    text1(i).visible=false
    end if
    Text1(i).Top = NewRow
    Text1(i).Left = NewCol
    Text1(i).Visible = True
    NewCol = Val(NewCol) + Val(Text1(i).Width)
    NewRow = Val(NewRow) + Val(Text1(i).Height)
    Next i
    End Sub

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    ...non ho capito se steno12 stia rispondendo a me.

    dvcappie ha chiesto aiuto (se nn ho capito male) per la generazione di TextBox a runtime, mediante matrice di controlli.

    Il suo problema è riuscire a creare serie di textbox affiancate in più tempi, ed ogni volta che si crea la serie, quest'ultima si deve 'appendere' alla precedente a mò di griglia.

    Almeno io ho capito questo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    35

    non è questo purtroppo

    Purtroppo non è questo che io dicevo.

    Mi rispiego meglio:

    ho una casella di testo dove scrivo le colonne e una dove scrivo le righe;
    Se nella casella di testo dove scrivo le colonne metto 5, avrò 5 caselle di testo in orizzontale;
    Nella casella di testo dove dovrei scrivere le righe, se metto 4, dovrò avere 4 righe e in ogni riga ci saranno 5 textbox.

    Questo è il mio problema, chi mi può aiutare?
    Grazie, Davide

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    53
    Ciao Davide.
    Forse è la volta che ho capito
    E se non ho capito male la soluzione è semplicissima.

    Aggiungi una casella di testo es. txtRighe

    Nell'evento Click del Command1
    come prima istruzione metti

    For k = 0 to txtRighe
    .....
    mio codice
    .....
    next k

    nn l'ho provato.
    Dimmi se funziona!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    35

    grazie adesso ci siamo

    Ti ringrazio molto adesso ci siamo davvero.
    Ti ringrazio molto, adesso ci lavoro un pò su e vedo di farlo entrare al caso mio
    Grazie, Davide

  9. #9
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    devi immettere sul form una text1(0).text, poi lavora su questo codice, tenendo a mente che se hai le righe devi fare altri clcli for, io preferirei comunque il while con condizioni if......then
    questio è l'esempio base.........

    righe = 2 'default
    numeroditext = 4 'default
    c = 0
    Stop
    For i = 1 To numeroditext
    Load Text1(i)
    c = c + 500
    Text1(i).Top = c
    Text1(i).Visible = True
    Next i

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    35

    Ho dei problemi

    L'esempio di janx è ottimo e funziona, ma non riesco a capirlo tanto,
    Se volessi inserirlo a modo mio, cioè senza usa count come devo fare?

    Il mio esempio è questo:

    On Error GoTo err

    Text1(0).Height = Form1.Text4.Text ' width e height da 2 text
    Text1(0).Width = Form1.Text3.Text



    I = Form1.Text2.Text
    For I = 1 To Form1.Text2.Text - 1 'inizio il ciclo per le
    'colonne

    Load frmLabel.Text1(I)


    With frmLabel.Text1(I)
    .Top = 0
    .Left = .Width * I

    .Visible = True
    .Text = I + 1
    End With

    Next
    ' Fino a qui tutto a posto
    err:

    Adesso per inserire sempre qui dentro la creazione di righe come posso fare?
    Il codice di janx fa quello che dico io, ma è scritto in un modo che non comprendo al 100%, come potrei inserire qui quell'altra parte di codice che mi fa le righe?
    Grazie a tutti, Davide
    P.s. Caro janx un altro piccolo aiuto...

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.