Почему событие DataGridView SelectionChanged не запускается? - PullRequest
1 голос
/ 02 января 2012

В приведенном ниже коде событие datagridview1_SelectionChanged, которое возникает после изменения выбора с помощью кода в обработчике события datagridview1_RowsAdded, свойство CurrentRow имеет значение null. но я только что установил его в обработчике datagridview1_RowsAdded, и он не равен нулю.

Однако, если я прокомментирую две строки в обработчике datagridview1_RowsAdded и выберу строку щелчком мыши по любой строке, программа будет работать нормально. Может кто-нибудь сказать мне, почему это происходит?

Вот мой код:

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1];
    dataGridView1.CurrentCell.Selected = true;
}

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    if (dataGridView1.CurrentRow != null)
    {
        if (dataGridView1.CurrentRow.Index != -1)
        {
           dataGridView2.Enabled = true;
           dataGridView3.Enabled = true;
           dataGridView4.Enabled = true;
        }
        else
        {
           dataGridView2.Enabled = false;
           dataGridView3.Enabled = false;
           dataGridView4.Enabled = false;
        }
    }
    else
    {
        dataGridView2.Enabled = false;
        dataGridView3.Enabled = false;
        dataGridView4.Enabled = false;
    }
}

1 Ответ

1 голос
/ 02 января 2012

В вашем методе RowsAdded вы выбрали текущую ячейку, но не текущую строку.Вы можете выбрать текущую строку с помощью этого:

dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Selected = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...