PDA

Показать полную графическую версию : Обработчик события для TreeView


котвася
08-11-2010, 00:11
Подскажите какой обработчик события надо использовать, что бы кликая мышкой на одном из подпунктов 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
Ну, во первых, в примере, используется обработка двойного нажатия мышки, а не одинарного. Во вторых, все верно, надо только использовать аргумент функции e для обработки нужного элемента:

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

котвася
11-11-2010, 02:20
не понятно да и пример Ваш не работает, у меня компилятор MVS2010U

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

котвася
11-11-2010, 02:47
это я понял что надо сделать иф. не понятно пока как, что с чем сравнивать.
мне надо на с++

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

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

котвася
11-11-2010, 23:53
в с++ e не содержит в себе Node, что можно сделать?

Delirium
12-11-2010, 01:06
котвася, а в поиске полазить, поискать, желания не было?:

http://msdn.microsoft.com/ru-ru/library/system.windows.forms.treeview.nodemouseclick.aspx
http://www.visualstudiodev.com/visual-basic-express-edition/treeview-nodemouseclick-event-not-working-properly-75108.shtml
http://www.sql.ru/Forum/actualthread.aspx?bid=34&tid=613991&hl=

System::Windows::Forms::TreeNodeMouseClickEventArgs^ e »
Node обязан быть. Либо не то используешь, либо не там смотришь. Приведи полный код.




© OSzone.net 2001-2012