| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Обновить текущий элемент TreeView при редактирован |
| Автор: NilovSerge 5.11.2007, 18:28 |
| 1)У меня элементы TreeView редактируется в отдельном окне. Отредактировав или создав новый элемент я хочу свои изменения отобразить в TreeView. Уменя работает вставка нового элемента но при редактировании получаю ошибку: "No parameterless constructor defined for this object" Если я не ошибаюсь то редатирование элемента надо так: Клонировать редактируемый обьект запомнить его индекс удалить и внеся изменения пересоздать заново Делаю так: if (!isInsert) { // edit existing dep DepsTreeNode CopyObj = (DepsTreeNode)CurrentNode.Clone(); //Здесь ошибка CopyObj._Dep._Name = tbName.Text; int CopyObjIndex = DepstreeView.SelectedNode.Index; CurrentNode.Remove(); CurrentNode.Nodes.Insert(CopyObjIndex, CopyObj); CurrentNode.Expand(); } else {// add new Эта часть работает Deps NewDep = new Deps( /*int pDepID*/ this.DepId, /*string pName*/ tbName.Text, /*int pParentDepId*/ this.ParentDepId); CurrentNode.Nodes.Add(new DepsTreeNode(NewDep)); DepsTreeNode NewNode = (DepsTreeNode)CurrentNode.Nodes[CurrentNode.Nodes.Count - 1]; CurrentNode.Expand(); } DepsTreeNode это класс наследуемый от TreeNode. Я просмотрел в MSDN Clone() - у него нет никаких параметров. В чем может быть причина ? 2) двойным кликом на элементе TreeView я загружаю все строки в DataGridView. При этом если убрать фокус с TreeView, то текущий элемент не подсвечивается. Как можно выделить текущий элемент TreeView чтоб он был всегда выделен(Возможно картинкой)? Заранее спасибо |
| Автор: NilovSerge 6.11.2007, 13:19 |
| да действительно проще: Делаю treeView.SelectedNode.Text = "NewText"; и работает... А насчет 2) и выделении активного TreeNode при фокусироании другого контрола на форме идей нет ? |
| Автор: 1stain 6.11.2007, 14:14 | ||
| щас тебе модераторы все объяснят пока никого нет, лови код
подпишись в TreeView на соответствующие события |