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

    [VB NET] DataGridView evento change di una singola cella

    Salve a tutti,
    sto sviluppando un programmino in vb net e per la prima volta sto utilizzando la DataGridView (sono appena passato a vb net, prima usavo il 6).

    Il problema è questo, nel mio programma voglio eliminare la scrittura in minuscolo (non amo vedere i dati scritti un po in maiuscolo e un po in minuscolo, quindi impongo sempre il maiuscolo)
    per farlo nelle textbox scrivo questo codice nell'evento textchange della textbox interessata (in questo caso la 1)

    codice:
    dim pos as integer = textbox1.textlength   '  ottengo la lunghezza del testo
    textbox1.text=ucase(textbox1.text)         '  faccio la conversione in maiuscolo
    textbox1.selectionstart=pos                    '  posiziono il cursore dopo l'ultima lettera
    cosi ogni lettera che inserisco è in MAIUSCOLO e il codice viene eseguito lettera per lettera e non a fine scrittura. (non voglio che si scrive in minuscolo e poi ad esempio all'uscita dalla textbox sia convertito in maiuscolo)

    E fino a qui tutto bene nelle textbox con queste tre righe di codice.
    ora pero mi trovo a fare i conti con una datagridview dove all'utente è permesso di modificare le celle.

    ora come faccio ad applicare il codice che uso per le textbox alla datagridview?
    nella lista degli eventi delle datagridview l'evento textchange non c'è.....

    Qualcuno sa dirmi se è nominato in un'altro modo o come posso risolvere il problema?

    Altra domanda sempre riguardo le datagridview.
    come faccio a sapere qual'è la cella che l'utente seleziona per recuperare il dato in essa contenuto?

  2. #2
    Dai un'occhio all'evento editingcontrolshowing
    ciao

  3. #3
    Ciao, grazie per la risposta, sono andato adesso a vederlo su msdn, ma non credo che quetso possa sostituire il textchange, su msdn recita cosi :
    Si verifica quando viene visualizzato un controllo per la modifica di una cella.

    nonparla di cambiamento del desto della cella.

    poi non so non l'ho mai usato, se sai dirmi qualcosa di piu in merito sono tutto orecchi

    per ora grazie

  4. #4
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Ciao, purtroppo il passaggio da vb6 a vb.net non è indolore..
    Principalmente mi sento di darti due consigli:
    1) studiati questo nuovo linguaggio, possibilmente comprati un bel manuale.
    2) dimenticati i vari metodi usati sotto vb6, e cerca di usare solo ed esclusivamente quanto messo a disposizione da .net

    Detto questo, tutta questa pappardella:
    codice:
    dim pos as integer = textbox1.textlength   '  ottengo la lunghezza del testo
    textbox1.text=ucase(textbox1.text)         '  faccio la conversione in maiuscolo
    textbox1.selectionstart=pos                    '  posiziono il cursore dopo l'ultima lettera
    si traduce impostando la proprietà, della TextBox, CharacterCasing=Upper

    Mentre per quanto riguarda l'oggetto DataGridView, ho visto che puoi usare l'evento EditingControlShowing:
    codice:
    Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
    If e.Control.GetType Is GetType(DataGridViewTextBoxEditingControl) Then
         Dim txt As TextBox = e.Control
         If (txt IsNot Nothing) Then
              txt.CharacterCasing = CharacterCasing.Upper
         End If
    End If
    End Sub

  5. #5
    ciao Alpynet

    grazie per l'aiuto, non ho ancora avuto modo di provarlo, ora sono fuori, appena torno a casa lo provo subito.
    ti faccio sapere.
    grazie per ora

  6. #6
    ho appena provato il codice, funziona alla grande!!!
    Grazie mille!!!

    SE posso approfittare ancora del tuo sapere ti chiedo ancora una cosetta sempre sulle datagridview:

    che comando devo usare per formattare un intera colonna in un numero decimale con 2 zeri dopo la virgola?

    o meglio il comando credo non sia cambiato da vb6 a net

    codice:
    variabile=formatnumber(variabile,2)
    ma come faccio ad impostarlo come formattazione per una colonna intera?

  7. #7
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Ciao, dai un'occhiata qui e qui

  8. #8
    Grazie mille!!!!

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.