Скрыть все строки, кроме той, которая редактируется в DataGridView - PullRequest
1 голос
/ 19 октября 2011

Я хочу уменьшить вероятность того, что пользователи отредактируют неправильную запись, поэтому, как только они начнут редактировать одну строку в datagridview, я хочу скрыть все строки.

Я попробовал это:

foreach (DataGridViewRow dgvr in rdGridView.Rows)
{
    if (dgvr.Index != e.RowIndex )
    {
        dgvr.DefaultCellStyle.BackColor = Color.DarkGray;
        dgvr.ReadOnly = true
    }
}

Но это не дает большой защиты.

Я могу обновить DataView, чтобы показывать только эту строку, и снова назначить представление данных для вида сетки данных, но это уберет фокус из ячейки, а ячейка не 't перейти в режим редактирования.

Выполнение dgvr.Visible = false в цикле foreach, как описано выше, также дает исключение

Ответы [ 3 ]

0 голосов
/ 23 октября 2011

Я бы выбрал немного другое решение.Двойным щелчком по строке (независимо от того, в какой ячейке вы собираетесь редактировать целые ячейки строки) вы открываете новую форму (небольшое окно), в которой будут текстовые поля и кнопка «Сохранить».Количество текстовых полей зависит от количества редактируемых столбцов.Поэтому передайте все данные из DGV в конструктор этой новой формы и передайте данные в соответствующие текстовые поля.

Таким образом, вы можете редактировать все данные, отделенные от DGV.И, между прочим, при показе новой формы используйте метод ShowDialog (), который будет создавать эту новую форму только для редактирования (перед закрытием пользователь не сможет делать что-либо еще, кроме как редактировать данные в этой форме).

0 голосов
/ 09 января 2012

Не удалось найти ничего лучше, чем сделать все строки доступными только для чтения и сделать их серыми, кроме редактируемой.

0 голосов
/ 19 октября 2011

Возможно, вам следует попробовать загрузить свои данные в DataGridView, но используя поля для загрузки данных из строки, которую вы хотите редактировать. Таким образом, вы можете установить DataGridView в ReadOnly, а по щелчку вы можете скопировать данные из редактируемых полей в текстовые поля, что позволит пользователю редактировать и сохранять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...