DevExpress TreeView добавить сгиб, затем выделить и фокусировать строку в режиме редактирования

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

2 ответа

Решение

Если бы точно такая же проблема, вот фрагмент кода, требовала глобальной переменной, чтобы отличить обычный клик от клика "Я хочу редактировать":

Сначала создайте глобальную переменную

bool fChanged = false;

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

m_treelist.SetFocusedNode (node);
fChanged = false;
m_treelist.ShowEditor ();

Добавить событие в свой список щелчков, добавить этот код

fChanged = false;

Добавьте событие в событие OnFocusedNodeChanged, добавьте этот код

fChanged = true;

В событии ShowingEditor вы хотите поместить этот код

e.Cancel = fChanged;

Если у вас есть какие-либо действия в щелчках мыши (для контекстных меню, убедитесь, что для fChanged установлено значение false, так как это также вызовет редактор.

Наконец, все, что вам нужно сделать, это обработать ValidateEditor и HiddenEditor вашим кодом.

НТН

Установить FocusedColumn свойство к нужному столбцу, затем вызвать ShowEditor() войти в режим редактирования.

Другие вопросы по тегам