PDA

View Full Version : [C#] Evento colonna DataGrid


Fenomeno85
19-06-2010, 20:18
Ciao a tutti, č possibile associare un evento solo ad una determinata colonna di un datagridview?

~§~ Sempre E Solo Lei ~§~

RaouL_BennetH
20-06-2010, 12:08
Credo di si, in generale dovresti avere un evento del tipo 'DataGridViewCellEventArgs'




//ti dovrebbe bastare fare una cosa del genere:

private void griglia_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if(e.ColumnIndex == 1)
{
//fai qualcosa
}
}



Questo č un esempio associato all'evento double click su una cella che deve essere scatenato solo se mi trovo sulla colonna con index 1.

Fenomeno85
20-06-2010, 12:13
Credo di si, in generale dovresti avere un evento del tipo 'DataGridViewCellEventArgs'




//ti dovrebbe bastare fare una cosa del genere:

private void griglia_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if(e.ColumnIndex == 1)
{
//fai qualcosa
}
}



Questo č un esempio associato all'evento double click su una cella che deve essere scatenato solo se mi trovo sulla colonna con index 1.

si esatto č quello che ho fatto pure io :D

~§~ Sempre E Solo Lei ~§~

sneeze
09-07-2010, 19:49
si č una soluzione ma purtroppo č sconsigliatissima. sopratutto se si dā all'utente la possibilitā di fare un reorder delle colonne, a quel punto succede di tutto.
Se si conoscono i nomi delle colonne molto meglio una cosa del tipo

private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "colonna da testare") faiqualcosa();
}

oppure se la griglia la sta bindando ad una sorgente dati ancora meglio

private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "colonna da testare") faiqualcosa();
}