Метод 1: Добавить спящий поток.Используйте это, только если вы хотите обрабатывать клики, которые происходят во время сна.Поскольку поток будет в спящем режиме, но щелчки будут записываться во время спящего режима и обрабатываться позже.
Вы можете использовать следующий код, чтобы подождать 1 секунду в событии клика
System.Threading.Thread.Sleep(1000);
Параметры указываются в миллисекундах.
Таким образом, результирующий код может быть:
private void dgvGeoObjects_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
bool visible = (bool)dgvGeoObjectsFirstView.CurrentCell.EditedFormattedValue;
DataRow dataRow = ((DataRowView)dgvGeoObjectsFirstView.Rows[e.RowIndex].DataBoundItem).Row;
foreach (MapDisplayObjectBase sym in _symLayer.DisplayObjects)
{
if (sym.UserObject == dataRow)
sym.Visible = visible;
}
mapControl.RefreshMap();
System.Threading.Thread.Sleep(100); //I think 0.1 second would be enough.
}
}
Метод 2: Если вы хотите, чтобы щелчки игнорировались во время сна (скажем,0,01 сек), лучше использовать таймер.Если кто-то щелкает во время сна, просто добавьте
e.Handled=true;
в событие щелчка.