Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Клик по TreeNode 
:(
    Опции темы
N1ko
Дата 31.8.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Здравствуйте. Подскажите плз, как програмно кликнуть по определённому TreeNode?
PM MAIL ICQ   Вверх
ДобренькийПапаша
Дата 1.9.2010, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



А с какой целью? Зачем вам это? У TreeNode нет метода PerformClick() к сожалению. Эмулировать клик по узлу, наверно, не так просто)))

Просто зачем вам это? Может мы что-нибудь придумаем))) Что по клику должно произойти?

Это сообщение отредактировал(а) ДобренькийПапаша - 1.9.2010, 14:45


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
N1ko
Дата 2.9.2010, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Ну наверное я что то неправильн делаю значит... В общем у меня выставлено событие на клик по узлу. В нём находится достаточно объёмный код. Но есть один случай когда мне нужно выполнить все те же действия без участия пользователя. Если быть точнее то мне нужно вызвать событие клика, когда я вызываю определённое событие из контекстного меню определённого узла.
Делаю я пока следующим образом (но думаю что это не самый оптимальный путь)

Код

//Поле для хранения координат узла, по которому было совершено нажатие правой клавишей
 private Point currentNodeLocation;

 private void FrmTVFileStructure_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
     {
        //выполняем действия
     }

 private void FrmTVFileStructure_MouseDown(object sender, MouseEventArgs e)
     {
            //Получаем координаты узла, по которому кликнули
            if (e.Button == MouseButtons.Right)
            {
                   this.FrmTVFileStructure.SelectedNode = this.FrmTVFileStructure.GetNodeAt(e.Location);
            }
            this.currentNodeLocation = e.Location;
     }

   //Вызов события из контекстного меню определённого узла
   private void FrmTSMICheck_Click(object sender, EventArgs e)
     {
          //Вызов события клика
          this.FrmTVFileStructure_NodeMouseClick(sender, new TreeNodeMouseClickEventArgs(this.FrmTVFileStructure.SelectedNode, MouseButtons.Left, 1, this.currentNodeLocation.X, this.currentNodeLocation.Y));
     }


В общем вот так вот коряво. Можно как то это оптимизировать? =)
PM MAIL ICQ   Вверх
CYBERDREAM
Дата 2.9.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 4
Всего: 28



Приветствую.
Так оберни "объёмный код" в метод, и вызывай его как при клике на узел  так и при  чем то еще.


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
N1ko
Дата 5.9.2010, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 383
Регистрация: 30.12.2007
Где: Киев

Репутация: нет
Всего: нет



Возможно немного неуместный вопрос, но если допустим создавать такие методы, то лучше описывать их в том же файлике либо создавать какой нить дополнительный класс? Меня просто интересует даная ситуация с точки зрения правильности написания кода.
PM MAIL ICQ   Вверх
Экскалупатор
Дата 5.9.2010, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



с точки зрения 
Цитата(N1ko @  5.9.2010,  00:25 Найти цитируемый пост)
правильности написания кода. 

тут все подчиняется обычной объектной логике, к чему код относиться там он и должен быть.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.