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

    [VB.NET] DataGrid: Modifica contenuto celle

    Salve a tutti.
    Continua il mio smanettamento con questo fantomatico oggetto DataGrid!
    Adesso andiamo sul difficile.
    Dunque, il mio DataGrid è composto da una tabella di 3 colonne, rispettivamente:

    1. Codice
    2. Descrizione
    3. Prezzo

    Volevo far sì che, una volta che l'utente ha inserito un codice nella apposita colonna e premuto successivamente il tasto "Tab", nelle colonne 2 e 3 comparisse, ad esempio quel codice.

    In parole povere, ciò che mi interessa, è gestire l'evento "causato" dalla pressione del tasto "Tab" quando l'utente si trova nella colonna 1.

    Mi basterebbe solo un aiutino su come procedere...
    Vi ringrazio anticipatamente.
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  2. #2
    Ok.
    Ho cercato un pò qua e là e, dopo enormi fatiche , sono riuscito a tirar giù una cosa del genere:

    codice:
    Private Sub CallCurrentCellChanged()
    	AddHandler myDataGrid.CurrentCellChanged, AddressOf Grid_CurCellChange
    End Sub
    
    Protected Sub Grid_CurCellChange(ByVal sender As Object, ByVal e As EventArgs)
    	Dim myString As String = "Evento CurrentCellChanged sollevato, il focus della cella è a "
    	Dim myPoint As String = myDataGrid.CurrentCell.ColumnNumber + "," + myDataGrid.CurrentCell.RowNumber
    	myString = myString + "(" + myPoint + ")"
    	MessageBox.Show(myString, "Coordinate della cella corrente")
    End Sub
    Dovrebbe comparirmi, quando mi sposto con il tasto Tab da una cella all'altra, una MessageBox con le coordinate della mia cella.

    Invece non compare un bel niente!
    Qualcuno ha idea di come mai?
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  3. #3
    Nuovo tentativo...
    Provo con l'evento generato dalla tabella:

    codice:
    Public Sub CallCurrentColChanged()
            AddHandler myTable.ColumnChanged, AddressOf Table_CurColChange
    End Sub
    
    Public Sub Table_CurColChange(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs)
            Dim myString As String = "Evento CurrentCellChanged. Il focus della cella è a "
            Dim myPoint As String = myDataGrid.CurrentCell.ColumnNumber + "," + myDataGrid.CurrentCell.RowNumber
    
            myString = myString + "(" + myPoint + ")"
            Console.WriteLine(myString)
    End Sub
    ... niente da fare anche in questo caso.
    La finestra di console non mi scrive una bella mazza.
    E' incredibile, ma questa Sub non viene mai chiamata.

    Se avete qualche idea...
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

  4. #4
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Premetto che io l'ho fatto i c# ma credo sia uguale diciamo tu hai una funzione così:
    private sub funzione(object sender, System.EventArgs e)

    MessageBox.Show dataGrid1.CurrentCell.RowNumber
    MessageBox.Show dataGrid1.CurrentCell.ColumnNumber)
    MessageBox.Show dataGrid1(dataGrid1.CurrentCell.RowNumber,dataGrid 1.CurrentCell.ColumnNumber)
    End Sub

    Se aggiungi funzione nelle proprietà del datagrid all'evento CurrentCellChanged dovrebbe funzionare se è ho capito bene quello che ti serve...L'ho tradotto adesso da c# a VB senza provarlo non so se c'è qualche errore!
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  5. #5
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Senza quella parentesi dopo ColumnNumber ovvero nel secondo msgbox:
    MessageBox.Show dataGrid1.CurrentCell.ColumnNumber
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  6. #6
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Il problema è qui:
    Protected Sub Grid_CurCellChange(ByVal sender As Object, ByVal e As EventArgs)
    Dichiarata cisì è una sub che non parte mai se aggiungi a quella riga Handles myDataGrid.CurrentCellChanged vedrai che te la richiama ovvero:
    Protected Sub Grid_CurCellChange(ByVal sender As Object, ByVal e As EventArgs) Handles myDataGrid.CurrentCellChanged
    almeno gli dici quale evento deve gestire!
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  7. #7
    Chiedo scusa...
    Richiamavo tale sub all'interno di un'altra sub che, a sua volta, non veniva mai richiamata!
    C'erano poi dei "+" al posto degli "&". Cose che capitano...

    Comunque, per chi fosse interessato, ecco il codice:

    codice:
    Public Sub Table_CurColChange(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs)
    	Dim myColumNumber As Integer = DataGrid1.CurrentCell.ColumnNumber
    	Dim myRowNumber As Integer = DataGrid1.CurrentCell.RowNumber
    	Console.WriteLine("colonna: " & myColumNumber & " - " & "riga: " & DataGrid1.CurrentCell.RowNumber)
    End Sub
    E poi:

    codice:
    AddHandler tabellaDatiDocumento.ColumnChanged, AddressOf Table_CurColChange
    Ciao e grazie!
    Nicola Baldi <% Naighes %>
    Il mio blog!

    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna."

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.