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

    [VB.Net] Consistenza dei dati su Textbox e Datagridview

    Un saluto a tutti oggi sono qua per chiedervi un consiglio su come poter aver consistenza tra dei dati che sono contenuti in textbox e in datagridview. In particolare, ad esempio, ho una textbox con un valore, un'altra con lo stesso valore ma in altro formato e vorrei che quest'ultimo valore fosse riportato nel datagridview in precise posizioni, ma vorrei anche che se vado a modificare quel valore nella datagridview vengano aggiornate le relative textbox collegate. Solitamente nella prima textbox ho un valore numerico, nella seconda uno alfanumerico di lunghezza massima 8 caratteri e questo deve essere scritto nella tabella in 4 celle consecutive avendo 2 caratteri per cella.

    Spero di essere stato abbastanza chiaro e ringrazio in anticipo chiunque possa darmi un suggerimento

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    119
    Non ci ho capito niente.
    Descrivi i campi che hai a video, e le cose che ci vuoi fare.
    Sarebbe meglio del codice, anche non funzionante.

  3. #3
    Ok adesso vedrò di spiegarmi meglio, questa è intanto un'immagine per rendere meglio l'idea:



    Diciamo che su TextBox_1 scrivo un valore che è sempre numerico, durante la scrittura questo valore viene convertito tramite una funzione in caratteri alfanumerici e posto in TextBox_1B e così avviene analogamente per tutti gli altri TextBox.
    A me interessa scrivere nella tabella, oltre che nel TextBox_1B, il valore alfanumerico derivato dalla funzione, però questo deve essere fatto in opportune celle ad esempio da quelle con coordinate da 00 a 03, mentre se scrivo TextBox_2 il valore alfanumerico dovra essere riportato in TextBox_2B e alle celle con coordinate da 54 a 57 e via dicendo per le altre TextBox. Questa cosa però non deve funzionare a senso unico, nel senso che io devo poter modificare le celle in tabella e ritrovarmi i valori aggiornati nelle relative textbox. Ora riporto la soluzione a cui ho iniziato a lavorare ma che è incompleta.

    All'evento Load del Form lancio questa funzione:

    Codice PHP:
    Private Sub addHandlersToTxt() 
        
    Dim element As Control 
        
    For Each element In Me.Controls 
             
    If TypeOf element Is TextBox Then 
                  AddHandler CType
    (elementTextBox).TextChangedAddressOf textHandler 
             End 
    If 
        
    Next 
    End Sub 
    Dopodichè ho scritto la funzione textHandler:
    Codice PHP:
    Private Sub textHandler(ByVal sender As ObjectByVal e As System.EventArgs)
          
    Select Case sender.name
               
    Case "TextBox_1"
                    
    TextBox_1B.Text = New funzioneConverti(sender.Text)
                Case 
    "TextBox_2"
                    
    TextBox_2B.Text = New funzioneConverti(sender.Text)
         
    End Select
    End Sub 
    Oltre a scrivere il valore nell'altra TextBox come posso scriverlo nel dataGrodView?
    Il mio problema è la lunghezza del testo, come vedete nelle celle devono starci 2 caratteri quindi se ad esempio in TextBox_2B ho il valore "AB9" mi trovo a dover scrivere nella cella 54 il valore "AB" nella cella 55 il valore "05" (devo aggiungere uno zero perchè non posso lasciare un solo carattere), nella cella 56 "00" e uguale per la cella 57 quindi qualunque sia il numero di caratteri di TextBox_2B io devo riempire 4 celle.

    Per quello che riguarda invece la modifica del dataGridView e la visualizzazione nelle rispettive TextBox ho pensato a una cosa del genere:
    Codice PHP:
    Private Sub Grid_CellValueChanged(ByVal sender As ObjectByVal e As System.Windows.Forms.DataGridViewCellEventArgsHandles Me.CellValueChanged
         _main
    .updateInfo()
    End Sub 
    Cioè sfrutto l'evento del datagridview per richiamare una funzione.
    _main è un riferimento al form principale e la funzione updateInfo è così definita:
    Codice PHP:
    Private Sub updateInfo()
    TextBox_1.Text = New funzioneConverti(selected_grid.Rows(1).Cells(1).Value selected_grid.Rows(1).Cells(2).Value _
                      selected_grid
    .Rows(1).Cells(3).Value selected_grid.Rows(1).Cells(4).Value)
    End Sub 
    Scelgo di convertire in valore delle celle e di scriverle su TextBox_1 perchè in questo modo verrà scatenato l'evento precedente su TextBox_1 che andrà a modificare il valore di TextBox_1B anche se questo TextBox riporta esattamente il valore contenuto nelle celle modificate. selected_grid è un riferimento al Datagridview

    Spero di essere stato più chiaro e che mi possiate aiutare nel mio problema.
    Grazie in anticipo

    Edit: dimenticato di dire che può capitare anche che modifichi ad esempio TextBox_1B e che si debba aggiornare TextBox_1 e le relative celle.

  4. #4
    UP

    So di aver scritto il post un po' di tempo fa ma per alcuni impegni ho dovuto lasciare in sospeso il progetto. Sono ancora fermo qua però e non so come avere consistenza, c'è qualcuno a cui è venuta un'idea?

    Grazie ragazzi

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.