Member 14945943 Ответов: 1

Управление строкой datagridview "новая запись" по коду


У меня есть datagridview с надписью "разрешить пользователям добавлять новые строки". Он привязан к базе данных. Второй столбец в этом datagridview доступен только для чтения, и когда пользователь входит в эту ячейку, Я показываю treeview. (Я назначаю размер и расположение treeview размеру и расположению ячейки. При выборе узла в treeview я заполняю ячейку в datagrid именем узла treeview.(Надеюсь, вы меня поймете, прежде всего извините за мой ужасный английский). Более того, я просто начинаю с C#, я полный новичок)

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

Что я уже пробовал:

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

1 Ответов

Рейтинг:
0

Gerry Schmitz

Все это было бы проще, если бы вы использовали "форму" для добавления новой записи: больше контроля.

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

Если запись окажется недействительной, удалите ее (из сетки).

Поймите, что это просто происходит в сетке; вы не делаете никакой "проводки" в БД до тех пор, пока "новая" строка не будет проверена / принята.


Member 14945943

Привет, Джерри, я уже пытался создать пустую запись (со значениями в зависимости от формата столбца), когда пользователь щелкает по строке, соответствующей новой записи, но это не так просто: поскольку таблица в datagridview привязана, добавить записи легко невозможно. Я могу сделать это в событии DefaultValuesNeeded, но, к моему удивлению, он добавляет две новые строки (удивительно, но верно).
В любом случае, спасибо, что пытались мне помочь.