2013-05-06 2 views
1

У меня есть DatagridView с опцией AllowUserToAddRows = True. Итак, мой пользователь может видеть последнюю пустую строку, и если он что-то вставляет, создается новая строка.C# DatagridView set NewRow State to Added

У меня есть некоторые вычисления, когда пользователь меняет значения ячеек для этого. Я использую событие EndEdit. И я также использую Custom Contextmenu для удаления строк из этого Datagridview.

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

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

Итак, мой вопрос, есть ли способ создать строку и установить состояние для добавления программно? В DataRow есть метод setAdded, но я не мог его называть, когда Row отделяется.

Я нашел статью MSDN, в которой говорится, что мне нужно добавить строку в RowCollection, после чего добавляется Rowstate, но в моем случае (и в виду) строка находится в курсе RowCollection. Добавьте его в datagridview. ...

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

Лучшие Regads

ответ

1

Вы можете слушать для RowsAdded события и изменить одно из значений на новой строке в обработчик (и изменить его обратно, так что пользователь не замечает). Это должно сделать то же самое, что вручную изменить некоторые значения в вашей строке.

Если никакие значения не изменяются в новой строке, они не добавляются по умолчанию, в противном случае каждое редактирование вы получите новую пустую строку, добавленную в вашу коллекцию.

+0

Да, вот и все. Большое вам спасибо! – Bador