Я использую .NET 4.5 DataGridView в C# (Visual Studio 2010) с несколькими столбцами (Index, PosX, PosY, ...). Я заполнить его с несколькими рядами пользовательских данных, как это:Запрос определенного столбца DataGridView на основе CurrentRow
string[] row = new string[MyDataGridView.ColumnCount];
for (int i = 0; i < NumResults; i++)
row = new string[] { i.ToString(), PosXArray[i].ToString(), PosYArray[i].ToString(), ... }
MyDataGridView.Rows.Add(row);
Каждая строка содержит информацию для одного объекта, идентифицированного с помощью значения столбца «Index». Когда пользователь выбирает строку, я хочу знать, какой объект был выбран. Я использую «SelectionChanged» событие, чтобы запросить CurrentRow так:
int CurrentRow = -1;
private void MyDataGridView_SelectionChanged(object sender, EventArgs e)
{
if (MyDataGridView.CurrentRow.Index != CurrentRow)
// Access the data over MyDataGridView.CurrentRow.Index
CurrentRow = MyDataGridView.CurrentRow.Index;
}
Это работает до тех пор, как индекс CurrentRow такое же, как значение «Index» на колонке 1. Однако пользователь может сортировать DataGrid по-другому, например, на основе столбца «Позиция X».
Так что я хочу знать, как я могу получить доступ к значению определенного столбца, основанного только на индексе строки.