У меня небольшая проблема с DataGridView.
1. Удалите элемент управления DataGridView на форме и установите для свойства Visible значение False
2. Добавьте несколько строк и измените видимое значение на True , как показано выше.
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.Rows.Add(new object[] { "1", "a" });
dataGridView1.Rows.Add(new object[] { "2", "b" });
dataGridView1.Rows.Add(new object[] { "3", "c" });
dataGridView1.Rows.Add(new object[] { "4", "d" });
dataGridView1.Visible = true;
//^ this trigger selection
}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
Console.WriteLine("selected");
}
После установки значения Visible в True автоматически выбирается первая ячейка и запускается событие SelectionChanged.
Как это предотвратить?
EDIT. РЕШЕНИЕ:
- Отключение обработчика событий:
- Установить видимым
- Очистить выбор
- Добавить обработчик
dataGridView1.SelectionChanged -= dataGridView1_SelectionChanged;
dataGridView1.Visible = true;
dataGridView1.ClearSelection();
dataGridView1.SelectionChanged += dataGridView1_SelectionChanged;