![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| gol2 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
[c#]
Есть два класса:
Есть объект на форме: treeList1 объект класса DevExpress.XtraTreeList.TreeList; Запустить для treeList1 “Run Designer” и добавить одну колонку colName: FieldName: “Name” Колонка нужна для отображения смысловой информации: поле Title (каждый класс имеет это поле). Добавляем на форму кнопку: “Two” (Клик на кнопке добавляет в TreeList два объекта - отсюда и название)
После клика на кнопке “Two” на экране в объекте treeList1 появятся два узла: - “File”; - “FormForFile”. Вопрос как с помощью обработчика
получить любой из вставленных объектов? Т.е. как получить объект m1 или f1? |
||||||
|
|||||||
| CYBERDREAM |
|
||||||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: 4 Всего: 28 |
Кстати, если ты дважды кликнешь по узлу в колонке, у которой AllowEdit = true, то ты не прийдешь в treeList1_MouseDoubleClick а тебе откроется редактор узла. Добавлено @ 15:15 Кстати,
не лучше ли заменить на
Компилятор все равно ведь сгенерит эти поля Это сообщение отредактировал(а) CYBERDREAM - 10.3.2010, 07:02 -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
||||||
|
|||||||
| gol2 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Язык программирования 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, а затем по этому адресу получить сам объект. Задача вроде и не сложная, но я просто не знаю синтаксиса. Уже неделю или больше смотрю документацию, но пока результат не достигнут. Если Вы поможете, буду рад. Это сообщение отредактировал(а) gol2 - 10.3.2010, 13:38 |
||||||
|
|||||||
| CYBERDREAM |
|
||||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: 4 Всего: 28 |
Добрый день gol2 Странно почему нулл, должно работать
А по поводу твоих нодов, Думаю в классах тогда стоит переопределить ToString
А то в трилисте по идее не особо "полезная" информация будет отображена) Вот пример
Это сообщение отредактировал(а) CYBERDREAM - 10.3.2010, 13:39 -------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
||||
|
|||||
| gol2 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Добрый день, 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 |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: 4 Всего: 28 |
Брым брым
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
| gol2 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Привет, CYBERDREAM.
Похоже, что ты полностью прав. Когда сделаю, всё для чего это дело затеивалось - сообщу. СПАСИБО!! |
|||
|
||||
| gol2 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Привет, CYBERDREAM.
Ещё один вопрос. В treeList1 были добавлены узлы:
С помощью обработчика treeList1_MouseDoubleClick объект находящийся в узле извлечь получилось. А как извлечь объект с помощью обыкновенного цикла? Например:
|
||||
|
|||||
| CYBERDREAM |
|
||||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: 4 Всего: 28 |
Немного теории так сказать.
Количество объектов соответствует количеству колонок в трилисте. Т.е. в узле в колонке1 - будет m1, в колонке2 - будет m2.... И так, когда пройдешь по узлам дерева, обратись к объекту, в той или иной колонке узла
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
||||
|
|||||
| gol2 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 25.9.2007 Репутация: нет Всего: нет |
Спасибо, дорогой товарищ CYBERDREAM.
Очень помог!! |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |