Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Datagrid e celle
mercoledì 31 maggio 2006 - 17.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
giulyxiano
Profilo
| Junior Member
163
messaggi | Data Invio:
mer 31 mag 2006 - 17:56
Come posso fare in modo che la cella di un datagrid possa accettare solo due caratteri o due numeri?
Ancora come posso controllare i valori immessi nella cella? Per esempio se la cella può accettae solo dei numeri compresi tra 18 e 30 se immetto 31 come poso fare che compare una box che dice valore non esatto? Grazie.
blood
Profilo
| Senior Member
291
messaggi | Data Invio:
gio 1 giu 2006 - 11:15
>Come posso fare in modo che la cella di un datagrid possa accettare
>solo due caratteri o due numeri?
>Ancora come posso controllare i valori immessi nella cella? Per
>esempio se la cella può accettae solo dei numeri compresi tra
>18 e 30 se immetto 31 come poso fare che compare una box che
>dice valore non esatto? Grazie.
Puoi intercettare l'evento ColumnChanging del datatable sorgente della griglia ed usare l'oggetto e.Proposedvalue che è il valore appena immesso.Qui ti porto un esempio in cui ad ogni cambio di colonna converto il contenuto della cella appena inserito in maiuscolo:
Private Sub Cambio_colonna(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs)
e.ProposedValue = e.ProposedValue.toupper()
End Sub
Per quanto riguarda il totale dei caratteri oppure se solo numeri o lettere lo puoi fare via db (usando poi i corretti Mapping Name sullo stile della griglia) oppure controllando sempre il valore appena immesso al cambio di riga o colonna.Dopodichè per far comparire una box basta il semplice:
Messagebox.Show("Valore non esatto",TITOLO,MessageBoxButtons.OK,MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1)
Ciao, Paolo.
giulyxiano
Profilo
| Junior Member
163
messaggi | Data Invio:
gio 1 giu 2006 - 11:32
Io cercavo un evento sul datagrid e non sul datatable .
Come posso recuperare il valore di una cella?Qual è il modo,
datagrid.CurrentCell?????? e poi cosa?.......grazie Giuliano
blood
Profilo
| Senior Member
291
messaggi | Data Invio:
gio 1 giu 2006 - 11:42
>Io cercavo un evento sul datagrid e non sul datatable .
>Come posso recuperare il valore di una cella?Qual è il modo,
>datagrid.CurrentCell?????? e poi cosa?.......grazie Giuliano
Guarda che la sorgente della tua griglia è comunque sia un datatable quindi è completamente trasparente,eppoi non c'è un evento della griglia che ti permette di controllare se cambi colonna, oppure di vedere il valore che stai inserendo in quel momento (da quel che ne so io) quindi la soluzione più semplice è farlo dal datatable...comunque sia no, con CurrentCell ti ritorna o imposta la cella attiva, se vuoi recuperare un valore della griglia puoi fare
Me.datagrid.Item("NomeColonna")
oppure
Me.datagrid.Item(IndiceRiga,IndiceColonna)
Dove NomeColonna è una colonna dichiarata nello stile del tuo DataGrid...
giulyxiano
Profilo
| Junior Member
163
messaggi | Data Invio:
gio 1 giu 2006 - 12:00
Questo codice che hai scritto tu
Private Sub Cambio_colonna(ByVal sender As Object, ByVal e As DataColumnChangeEventArgs)
e.ProposedValue = e.ProposedValue.toupper()
End Sub
va bene se clicco qualcosa!!!!
l'evento da chi è scatenato?
Nel mio codice questa sub da chi è richiamata?
Il DataColumnChangeEventArgs da dove gli viene?
blood
Profilo
| Senior Member
291
messaggi | Data Invio:
gio 1 giu 2006 - 12:19
>Questo codice che hai scritto tu
>
>Private Sub Cambio_colonna(ByVal sender As Object, ByVal e As
>DataColumnChangeEventArgs)
>
>e.ProposedValue = e.ProposedValue.toupper()
>
>End Sub
>
>va bene se clicco qualcosa!!!!
>l'evento da chi è scatenato?
>Nel mio codice questa sub da chi è richiamata?
>Il DataColumnChangeEventArgs da dove gli viene?
>
si hai ragione, scusami mi sono dimenticato l'handler dell'evento
AddHandler ds.Tables(0).ColumnChanging, AddressOf Cambio_colonna
come ti ho già detto però è sul datatable...
giulyxiano
Profilo
| Junior Member
163
messaggi | Data Invio:
gio 1 giu 2006 - 13:35
Ricapitolando:
Io ho la mia tabella (MiaTabella) che è il datasource del datagrid
quando mi compare il datagri con i dati ed io vado a modoficare il dato come si scatena l'evento?
Nel codice con quale evento devo creare la Sub per effettuare il controllo?
La mia tabella non la trovo nei controlli ......quindi?
AddHandler myTabella.ColumnChanging, AddressOf Cambio_colonna dove va messo?
blood
Profilo
| Senior Member
291
messaggi | Data Invio:
gio 1 giu 2006 - 14:11
>Ricapitolando:
>
>Io ho la mia tabella (MiaTabella) che è il datasource del datagrid
>quando mi compare il datagri con i dati ed io vado a modoficare
>il dato come si scatena l'evento?
>Nel codice con quale evento devo creare la Sub per effettuare
>il controllo?
>La mia tabella non la trovo nei controlli ......quindi?
>
>AddHandler myTabella.ColumnChanging, AddressOf Cambio_colonna
>dove va messo?
Se ti sei creato un tuo DataTable è ovvio che non lo vedi tra i controlli, ma se hai usato un DataSet puoi fare:
AddHandler Me.dataset.Tables(numerotabella).ColumnChanging , AddressOf Cambio_colonna
In genere se hai un unica tabella il numero è 0.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !