[VB.NET] impedire modifica datagridview

mercoledì 28 ottobre 2009 - 19.15

cypher Profilo | Junior Member

ho questa datagridview che visualizza il risultato di una query

al click di una cella del datagridview carica i dati nella textbox dove possono essere aggiornati e poi salvati

detto cio ho 2 problemi:
1) come faccio affinche u dati si possano selezionare anche cliccando sulla riga??
2) come faccio ad evitare che i dati possano essere modificati anche dalla datagridview?? (vorrei che il datagridview fosse utilizzato solo per la visualizzazione e la selezione dei dati che poi verranno aggionrnati nelle textbox)

di seguito il codice per riportare i dati delle textbox per risolvere il punto 2
Dim row As Object row = grid_professionista.CurrentCell.RowIndex() txt_cognome.Text = grid_professionista.Item(0, row).Value txt_nome.Text = grid_professionista.Item(1, row).Value txt_cf.Text = grid_professionista.Item(2, row).Value txt_tel.Text = grid_professionista.Item(3, row).Value txt_fax.Text = grid_professionista.Item(4, row).Value txt_mail.Text = grid_professionista.Item(5, row).Value txt_odcec.Text = grid_professionista.Item(6, row).Value txt_sezione.Text = grid_professionista.Item(7, row).Value txt_numero.Text = grid_professionista.Item(8, row).Value txt_intestazione.Text = grid_professionista.Item(9, row).Value

per quanto riguarda il punto uno invece aspetto voi :)

luxsor Profilo | Guru

Ciao,
basta imposti la proprietà EditMode = EditProgrammatically



------------------------
Luxsor

alexmed Profilo | Guru

Ciao

>1) come faccio affinche u dati si possano selezionare anche cliccando sulla riga??

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
In questo modo funziona anche se ti sposti con le frecce o con il PGSU ed il PGGiù

Ciao

alexmed

cypher Profilo | Junior Member

ok funziona anche se il movimento con le frecce non me lo prende e neanche la selezione della riga completa

alexmed Profilo | Guru

Ciao
In allegato trovi un piccolo progetto di esempio fatto in VB 2005

Ciao

alexmed

cypher Profilo | Junior Member

grazie mille ...

molto utile mi è servito molto.

una cosa non mi è chiara... come faccio a fare apparire il calendario della combobox???

alexmed Profilo | Guru

>grazie mille ...
Prego!

>una cosa non mi è chiara... come faccio a fare apparire il calendario della combobox???
Magia nera!!!
Non si tratta di un controllo ComboBox, bensì di un DateTimePicker.

Ciao

alexmed

cypher Profilo | Junior Member

come faccio a riportarlo anche nel mio progetto che mi piace come cosa :)

alexmed Profilo | Guru


640x480 80Kb

Così!

Ciao

alexmed

cypher Profilo | Junior Member

ok perfetto ultima cosa

se io metto un campo della grid come non visibile poi quando clicco su una riga per tirare fuori i dati posso tirare fuori anche quelli delle colonne invisibili o no?? perche ho fatto cosi ma non funziona


Private Sub loadTABLE() Dim command As String = "SELECT * FROM Cliente" Dim da As New OleDbDataAdapter(command, conn) Dim ds As New DataSet() da.Fill(ds, "Cliente") Me.grid_cliente.DataSource = ds.Tables("Cliente").DefaultView Me.grid_cliente.Columns("ID").Visible = False Me.grid_cliente.Columns("DataNascita").Visible = False Me.grid_cliente.Columns("TipoDocumento").Visible = False Me.grid_cliente.Columns("NumeroDocumento").Visible = False Me.grid_cliente.Columns("RilascioDocumento").Visible = False Me.grid_cliente.Columns("DataRilascio").Visible = False Me.grid_cliente.Columns("LuogoNascita").Visible = False Me.grid_cliente.Columns("ViaResidenza").Visible = False Me.grid_cliente.Columns("Note").Visible = False Me.grid_cliente.Columns("CFDitta").Visible = False Me.grid_cliente.Columns("ViaDitta").Visible = False End Sub

questo invece è un frammento della sub di rowenter della gridview dove cmb_documento è una combo. come faccio a cambiare anche il valore della combo??? (cosi non me lo fa)

Me.dtp_datanascita.Text = grid_cliente.Item("DataNascita", e.RowIndex).Value Me.txt_residenza.Text = grid_cliente.Item("CittaResidenza", e.RowIndex).Value Me.txt_via.Text = grid_cliente.Item("ViaResidenza", e.RowIndex).Value Me.cmb_documento.SelectedIndex = grid_cliente.Item("TipoDocumento", e.RowIndex).Value Me.txt_numerodocumento.Text = grid_cliente.Item("NumeroDocumento", e.RowIndex).Value Me.txt_enterilascio.Text = Me.grid_cliente.Item("RilascioDocumento", e.RowIndex).Value Me.dtp_rilascio.Text = Me.grid_cliente.Item("DataRilascio", e.RowIndex).Value Me.txt_carica.Text = grid_cliente.Item("CaricaDitta", e.RowIndex).Value Me.txt_societa.Text = grid_cliente.Item("Ditta", e.RowIndex).Value Me.tx

alexmed Profilo | Guru

>ok perfetto ultima cosa
>
>se io metto un campo della grid come non visibile poi quando
>clicco su una riga per tirare fuori i dati posso tirare fuori
>anche quelli delle colonne invisibili o no?? perche ho fatto
>cosi ma non funziona

Si! Anche se la colonna è nascosta puoi farci riferimento. Se nascondi la prima colonna farai sempre alla colonna con index 0 (zero).



>questo invece è un frammento della sub di rowenter della gridview
>dove cmb_documento è una combo. come faccio a cambiare anche
>il valore della combo??? (cosi non me lo fa)

Immagino che la cmb sia collegata ad un db?


alexmed

cypher Profilo | Junior Member

la combo io la carico cosi

Dim sql As String = "SELECT * FROM TipoIdentita" Dim da As New OleDbDataAdapter(sql, conn) Dim dt As New DataTable da.Fill(dt) cmb_documento.DataSource = dt cmb_documento.DisplayMember = "Tipo"

al load della form perche se cerco di assegnargli cmb_document.ValueMember="ID" non me lo prende
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5