Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Обработчик события для TreeView (http://forum.oszone.net/showthread.php?t=190550)

котвася 08-11-2010 00:11 1537278

Обработчик события для TreeView
 
Подскажите какой обработчик события надо использовать, что бы кликая мышкой на одном из подпунктов TreeView выполнялось действие.

вот написал:
Код:

private: System::Void treeView1_NodeMouseDoubleClick(System::Object^  sender, System::Windows::Forms::TreeNodeMouseClickEventArgs^  e)
                {
                        this->webBrowser1->Navigate("C:\\$p\\LIBRARY\\Debug\\html\\hello.html");
                }

но это обработчик работает автоматически для всех подпунктов(subPoint), а надо для каждого свой. Не могу понять.

Delirium 08-11-2010 01:17 1537316

Ну, во первых, в примере, используется обработка двойного нажатия мышки, а не одинарного. Во вторых, все верно, надо только использовать аргумент функции e для обработки нужного элемента:

Код:

private void treeAll_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
          MessageBox.Show(e.Node.Text.ToString());
        }


котвася 11-11-2010 02:20 1539703

не понятно да и пример Ваш не работает, у меня компилятор MVS2010U

Delirium 11-11-2010 02:42 1539710

котвася, пример приведен на C#, в С++ немного другой вид кода. Что непонятно то? Приведенный код выводит сообщение с именем узла, на который щелкнули мышью. Соответственно, делаем просто IF и, при совпадении данных, выполняем нужный код.

котвася 11-11-2010 02:47 1539711

это я понял что надо сделать иф. не понятно пока как, что с чем сравнивать.
мне надо на с++
Код:

        if( e==?????????)
                { .... }


Delirium 11-11-2010 03:21 1539716

Цитата:

Цитата котвася
что с чем сравнивать »

Код:

if(e.Node.Text == "ИМЯ ВЕТКИ, НА КОТОРУЮ НАДО НАЖАТЬ")
Тестируй в отладке, нажми на ветку, поставь точку останова, закинь в Watch переменную е, смотри ее функции и прочее. Отдельно добавь отладку e.Node и смотри его свойства.

котвася 11-11-2010 23:53 1540515

в с++ e не содержит в себе Node, что можно сделать?

Delirium 12-11-2010 01:06 1540574

котвася, а в поиске полазить, поискать, желания не было?:

http://msdn.microsoft.com/ru-ru/libr...ouseclick.aspx
http://www.visualstudiodev.com/visua...ly-75108.shtml
http://www.sql.ru/Forum/actualthread...tid=613991&hl=

Цитата:

Цитата котвася
System::Windows::Forms::TreeNodeMouseClickEventArgs^ e »

Node обязан быть. Либо не то используешь, либо не там смотришь. Приведи полный код.


Время: 16:55.

Время: 16:55.
© OSzone.net 2001-