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
Colonna checkbox in un datagridview
lunedì 04 settembre 2006 - 11.06
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
paolo973
Profilo
| Senior Member
302
messaggi | Data Invio:
lun 4 set 2006 - 11:06
Ho un datagridview riempito con dei dati.
Il datagridview già funziona.
DOMANDA:
Come inserire una colonna checkbox per filtrare dal DatagridView le righe con il check = true?
filippo.monti
Profilo
| Junior Member
145
messaggi | Data Invio:
lun 4 set 2006 - 14:17
Inserire una cella checkbox per te penso che non sia un problema.
Per filtrare le righe con checkbox = true io faccio così
For Each row As DataGridViewRow In Me.dgvTestateFatt.Rows
if Boolean.Parse(row.Cells("fattura").Value.ToString then
...
End If
Nect
dove:
dgvTestateFatt è il mio datagrid
fattura: è il nome della cella checkbox all'interno del datagrid
Ciao
Filippo
paolo973
Profilo
| Senior Member
302
messaggi | Data Invio:
lun 4 set 2006 - 17:00
Parli di cella, io inserisco una colonna checkbox:
private void AggiungiColonnaCheck()
{
DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
{
column.HeaderText = "HeaderText";
column.Name = "Name";
column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
column.FlatStyle = FlatStyle.Standard;
column.ThreeState = false;
column.CellTemplate = new DataGridViewCheckBoxCell();
column.CellTemplate.Style.BackColor = Color.Red;
column.TrueValue = true;
column.FalseValue = false;
}
dataGridViewF.Columns.Insert(0, column);
}
filippo.monti
Profilo
| Junior Member
145
messaggi | Data Invio:
lun 4 set 2006 - 17:09
Perchè la inserisci da codice e non dal designer?
Filippo
paolo973
Profilo
| Senior Member
302
messaggi | Data Invio:
lun 4 set 2006 - 17:40
Questo è l'errore che si ripresenta sempre, anche se la colonna la inserisco in modo visuale:
Riferimento ad un oggetto non impostato su istanza di un oggetto
Tutto funziona se invece prima di filtrare li selezioni tutti e poi li deseleziono.
Sembra manchi una inizializzazione.
filippo.monti
Profilo
| Junior Member
145
messaggi | Data Invio:
mar 5 set 2006 - 09:13
Attenzione che se il campo non è bindato ad un campo di database il valore iniziale è null quindi o lo inizializzi a runtime o testi il valore null prima di usarlo.
Ciao
Filippo
paolo973
Profilo
| Senior Member
302
messaggi | Data Invio:
mar 5 set 2006 - 09:34
Ho la classe userControl1.cs dove ho inserito da designer anche il datagridView con solo una colonna di tipo checkbox.
nel costruttore del userControl1 ho:
per riempire il dataGridView,
dataGridViewF.DataSource = datasource;
dataGridViewF.DataMember = datamember;
per inizializzare i checkbox che ho per ogni riga,
for (int i = 0; i < dataGridViewF.RowCount; i++)
{
dataGridViewF.Rows[i].Cells[0].Value = true;
}
quindi se non erro, istanziando un oggetto usF di tipo userControl1 ho già inizializzato i vari checkbox, invece ottengo:
System.NullReferenceException
Riferimento ad un oggetto non impostato su un istanza di oggetto.
è possibile da designer impostare già un valore al checkbox ?
oppure cosa fare ?
grazie tante
filippo.monti
Profilo
| Junior Member
145
messaggi | Data Invio:
mar 5 set 2006 - 10:14
Sulla sezione data devi impostare i valori "FalseValue", "IndeterminateValue" e "TrueValue"
Ciao
Filippo
paolo973
Profilo
| Senior Member
302
messaggi | Data Invio:
mer 6 set 2006 - 08:59
l'avevo già fatto nel designer, assegnando alla colonna di tipo checked:
treeState = false
FalseValue = false
TrueValue = true
il datagridView che contiene tale colonna si trova in un UserControl,
nel costruttore dell'Usercontrol seleziono tutti i checkedBox e lo verifico
con un MessageBox.Show("valore --> "+dataGridViewF.Rows[i].Cells[0].Value.toString());
e ottengo True, quindi OK.
il problema di presenta nella visualizzazione del datagridView ovvero quando
lo inserisco nel pannello principale
mainPanelG.Controls.Add(istanzadiUserControl);
sempre lo stesso errore:
System.NullreferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto
la riga è dataGridViewF.Rows[i].Cells[0].Value.ToString().
Invece tutto funziona se dopo che il datagridView è apparso a video, seleziono e deseleziono tutto.
come se non ha sentito che ho selezionato tutto e poi deselezionato (per inizializzare) nel costruttore dell'usercontrol che contiene il datagridview
Non capisco
filippo.monti
Profilo
| Junior Member
145
messaggi | Data Invio:
mer 6 set 2006 - 09:28
Se non sbaglio quindi il problema si presenta in fase di design time.
Dovresti mettere nel costruttore dell'oggetto questo controllo
If Not DesignMode Then
....
Endif
in modo che entri nel codice solo a runtime...
Ciao
Filippo
paolo973
Profilo
| Senior Member
302
messaggi | Data Invio:
mer 6 set 2006 - 09:48
ho risolto grazie tante
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 !