2014-01-06 3 views
0

Я создал DataGridView в приложении на основе форм. я заранее выбранный некоторые некоторые строки, основанные на определенных условиях, используя следующий код: DataGridView1.Rows[i].Selected = true; Поддержание выбора строки после выбора пользователем другой строки в DataGridView

теперь у меня есть кнопка, которая позволяет пользователю перемещать фокус (запись указатель) к следующей выбранной строке.

Когда пользователь нажимает на кнопку я делаю следующее DataGridView1.CurrentCell = DataGridView1[0,row_number];

, но когда это произойдет ранее выбранную строку теряет изюминку.

Я хочу сохранить выделение (выбор) предыдущей строки, но указатель записи должен быть перемещен в следующую выбранную строку. Как я могу это получить.

ответ

1

Когда вы сделаете DataGridView1.CurrentCell, равный одной ячейки (строк), то множественный преобразуются в единый отбор и, таким образом, все остальные строки отменяются (Selected свойства установлено в False).

Есть различные варианты, чтобы избежать этого:

  • Самый логичный вариант не полагаясь на DataGridView1.CurrentCell вообще. Вы можете создать свою собственную переменную, чтобы сохранить текущую ячейку , редактируемую (вы можете даже сохранить ее в самой DataGridView, через ее Tag).
  • Другой вариант повлияет на стиль (цвет фона) строк, выбранных sofar, чтобы передать пользователю показ, который они все еще выбран. Хотя этот второй вариант не слишком рекомендуется, , насколько все «связанные функции» (например, Selected) будет продолжать вести себя так, как если бы эти строки не были выбраны.
+0

Да, я использовал DataGridView1.Rows [i] .DefaultCellStyle.BackColor = Color.Blue, так что он выглядит так, как будто он выбран. Спасибо большое! – Kaushik

+0

@ Каушик, добро пожаловать. – varocarbas

Смежные вопросы