Как показать значение строки сетки в textBox на событии SelectionChanged C #? - PullRequest
0 голосов
/ 07 марта 2019

Мне нужно показать значение строки выбранной сетки в текстовые поля. Я использую этот код, но он не работает. Любая помощь будет оценена.

 private void CRUD_SelectionChanged(object sender, EventArgs e)
    {

        txtBoxID.Text = CRUD.SelectedRows[0].Cells[0].Value.ToString();
        txtBoxStates.Text = CRUD.SelectedRows[1].Cells[1].Value.ToString();
        txtBoxName.Text = CRUD.SelectedRows[2].Cells[2].Value.ToString();
        txtBoxAddress.Text = CRUD.SelectedRows[3].Cells[3].Value.ToString();
        txtBoxCenter.Text = CRUD.SelectedRows[4].Cells[4].Value.ToString();
        txtBoxCity.Text = CRUD.SelectedRows[5].Cells[5].Value.ToString();
    }

1 Ответ

0 голосов
/ 07 марта 2019

Вы индексируете выбранные вами строки.если у вас есть менее 6 выбранных строк, то вы выйдете за пределы.Вы, вероятно, хотите получить данные только из одной строки.Проверьте, выбрана ли только одна строка, и затем используйте индекс 0. Убедитесь, что вы установили CRUD.MultiSelect = false

В качестве альтернативы используйте CRUD.CurrentRow, который когда-либо получит только одну строку.

Form.Designer.cs:

this.CRUD.SelectionChanged += new System.EventHandler(this.CRUD_SelectionChanged);

Form.cs:

private void CRUD_SelectionChanged(object sender, EventArgs e)
{
    txtBoxID.Text = CRUD.CurrentRow.Cells[0].Value.ToString();
    txtBoxStates.Text = CRUD.CurrentRow.Cells[1].Value.ToString();
    txtBoxName.Text = CRUD.CurrentRow.Cells[2].Value.ToString();
    txtBoxAddress.Text = CRUD.CurrentRow.Cells[3].Value.ToString();
    txtBoxCenter.Text = CRUD.CurrentRow.Cells[4].Value.ToString();
    txtBoxCity.Text = CRUD.CurrentRow.Cells[5].Value.ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...