| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > DevExpress TreeList |
| Автор: gol2 9.3.2010, 14:49 | ||||||
| [c#] Есть два класса:
Есть объект на форме: treeList1 объект класса DevExpress.XtraTreeList.TreeList; Запустить для treeList1 “Run Designer” и добавить одну колонку colName: FieldName: “Name” Колонка нужна для отображения смысловой информации: поле Title (каждый класс имеет это поле). Добавляем на форму кнопку: “Two” (Клик на кнопке добавляет в TreeList два объекта - отсюда и название)
После клика на кнопке “Two” на экране в объекте treeList1 появятся два узла: - “File”; - “FormForFile”. Вопрос как с помощью обработчика
получить любой из вставленных объектов? Т.е. как получить объект m1 или f1? |
| Автор: CYBERDREAM 9.3.2010, 15:14 | ||||||
Кстати, если ты дважды кликнешь по узлу в колонке, у которой AllowEdit = true, то ты не прийдешь в treeList1_MouseDoubleClick а тебе откроется редактор узла. Добавлено @ 15:15 Кстати,
не лучше ли заменить на
Компилятор все равно ведь сгенерит эти поля |
| Автор: gol2 10.3.2010, 12:51 | ||||||
Язык программирования c#. labelControl1: DevExpress.XtraEditors.LabelControl; (элемент отображающий реакцию на двойной клик). Уважаемый CYBERDREAM, не могу воспользоваться вашей подсказкой. Вот фрагмент кода который я вставил в обработчик:
т.к. в первый узел с помощью поля Name отображает строку "File" то после двойного клика не нём получим labelControl1.Text = "File"; Если сделать двойной клик по второму узлу, получим: labelControl1.Text = "FromForFile"; Это не то, что мне нужно Я, наверно, неясно сформулировал задачу. Задача - с помощью обработчика события treeList1_MouseDoubleClick получить объект который был вставлен в treeList методом: ( TreeListNode tln = treeList1.AppendNode(obj, null); ) где obj - объект класса MYMenu или MYForm (или другого класса). т.е. в данном случае мне надо получить объект конкретного класса MYMenu или MYForm. Я, так, понимаю, что необходимо получить сначала адрес объекта хранящегося в treeList1, а затем по этому адресу получить сам объект. Задача вроде и не сложная, но я просто не знаю синтаксиса. Уже неделю или больше смотрю документацию, но пока результат не достигнут. Если Вы поможете, буду рад. |
| Автор: CYBERDREAM 10.3.2010, 13:37 | ||||
| Добрый день gol2 Странно почему нулл, должно работать А по поводу твоих нодов, Думаю в классах тогда стоит переопределить ToString
А то в трилисте по идее не особо "полезная" информация будет отображена) Вот пример
|
| Автор: gol2 10.3.2010, 15:03 | ||
| Добрый день, CYBERDREAM. Я действительно ошибся с null. Далее, я полностью создал новую форму. В объекте TreeList была добавлена колонка: treeList.Nodes: treeListColumn1 - для отображения информации. Чуть-чуть усложнил объект класса my - добавил одно поле: int Idx и переопределил метод ToString(). Это сделано для того, чтобы не было никакх сомнений с чем работаем. Вот код:
После запуска программы получаем сообщение: m2: OLClient.FormTreeList+my (это объект класса my !! пока всё отлично!) После двойного клика на первом элементе (my m1 = new my("Верхний узел", 1, this);) На экране появляется сообщение : "Type object not my: Верхний узел" "info.Node[0].GetTyp: System.String" Мы не получаем объект типа my. Мы получаем колонку: treeList.Nodes: treeListColumn1. Ужас!! |
| Автор: CYBERDREAM 10.3.2010, 15:28 | ||
Брым брым
|
| Автор: gol2 11.3.2010, 09:53 |
| Привет, CYBERDREAM. Похоже, что ты полностью прав. Когда сделаю, всё для чего это дело затеивалось - сообщу. СПАСИБО!! |
| Автор: gol2 18.3.2010, 20:46 | ||||
| Привет, CYBERDREAM. Ещё один вопрос. В treeList1 были добавлены узлы:
С помощью обработчика treeList1_MouseDoubleClick объект находящийся в узле извлечь получилось. А как извлечь объект с помощью обыкновенного цикла? Например:
|
| Автор: CYBERDREAM 19.3.2010, 08:25 | ||||
Немного теории так сказать.
Количество объектов соответствует количеству колонок в трилисте. Т.е. в узле в колонке1 - будет m1, в колонке2 - будет m2.... И так, когда пройдешь по узлам дерева, обратись к объекту, в той или иной колонке узла
|
| Автор: gol2 19.3.2010, 11:32 |
| Спасибо, дорогой товарищ CYBERDREAM. Очень помог!! |