Нужно, что бы при нажатом Ctrl строки выделялись, и не снималось выделение при повторном клике на одну из выделенных строк. То есть - зажали Ctrl - > кликнули на строку с индексом 0 -> она стала синей - > и сколько бы мы на нее не кликали синей она и останется, пока нажат Ctrl. Как сделать? Сейчас у меня так :
private void gridAction_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control == true)
gridAction.MultiSelect = true;
}
private void gridAction_KeyUp(object sender, KeyEventArgs e)
{
if (e.Control == false)
gridAction.MultiSelect = false;
}
Но мне нужно запретить снимать выделение со строки если нажат Ctrl.
Я придумал такой велосипед.
Добавьте поле формы:
List<DataGridViewRow> selectedRows = new List<DataGridViewRow>();
Это будет список выделенных в текущий момент строк.
Подпишите DataGridView
на событие SelectionChanged
и разместите в нём следующий код:
private void DataGridView_SelectionChanged(object sender, EventArgs e)
{
// Нажата клавиша Control
if ((ModifierKeys & Keys.Control) == Keys.Control)
{
if (dataGridView.SelectedRows.Count > selectedRows.Count)
{
selectedRows.Clear();
selectedRows.AddRange(dataGridView.SelectedRows.Cast<DataGridViewRow>());
}
else
{
foreach (var row in selectedRows)
row.Selected = true;
}
}
else
{
selectedRows.Clear();
}
}
Логика такая. При нажатой клавише Control, если выделенных строк больше, чем в нашем списке, то добавляем в него все эти выделенные строки. Если выделенных строк стало меньше (то есть пользователь кликнул по ранее выделенной строке), то восстанавливаем выделение из нашего списка.
Когда выделение строк меняется без нажатой клавиши Control, очищаем наш список.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Может ли кто-то объяснить значение третьей строки в коде?
Возможно ли сделать запрос используя средства EF не описывая при этом контекст базы данных, либо создав и описав его непосредственно в функции...
Вот у меня закачен на сервере файл "файлtxt", и мне его надо без перекачки переименовать