2010-09-29 1 views

risposta

32

Potrebbe esserci un modo migliore, ma perché non basta chiedere a DataGridView che cosa viene chiamata la colonna con quell'indice?

int columnIndex = dGVTransGrid.CurrentCell.ColumnIndex; 
string columnName = dGVTransGrid.Columns[columnIndex].Name; 
+0

ho ottenuto la risposta – Nagendra

+0

if (dGVTransGrid.CurrentCell = null && dGVTransGrid.CurrentCell.OwningColumn.Name.ToString() == "Rate"!) – Nagendra

+2

@Nagendra: Perché si sta chiamando ToString() su nome, quando è già una stringa? –

2

Se lo vuoi dinamica sulla cella cliccato, allora si può ottenere dalla manifestazione

private void dataGridViewName_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    String columnName = this.dataGridViewName.Columns[e.ColumnIndex].Name; 

} 
9

Trovato un modo più semplice, su una sola riga.

[datagrid].CurrentCell.OwningColumn.Name 

spero che sia d'aiuto.

br, Eric Estrada Gomez

0

Può essere aiuta:

String s = dataGridView1.Columns[Index].HeaderText; 
+1

Questo non è corretto: i nomi delle colonne e il testo dell'intestazione non devono essere uguali. – Ken

1
for (var i = 0; i < DataGridView.ColumnCount; i++) 
var name = DataGridView.Columns[i].HeaderText; 

questo è un modo semplice di farlo.