Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как программно добавить обработчик события Добавлено: 04.06.09 11:29  

Автор вопроса:  Jak | Web-сайт: musautomat.ru | ICQ: 340809754 
Надо программно добавить пункт в контекстное меню и задать ему процедуру обработчик. Как прицепить конкретную процеду как обработчик события Click пункта меню? Хотелось бы использовать ToolStripItemCollection.Add(String, Image, EventHandler). Что передавать в качестве EventHandler? Дайте пример, плз.

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Jak



ICQ: 340809754 

Вопросов: 17
Ответов: 25
 Web-сайт: musautomat.ru
 Профиль | | #1
Добавлено: 04.06.09 12:17
Всем спасибо за участие.
Ответ ожидался примерно такой:
  1.  
  2. ' класс - наследник контекстного меню
  3. Public Class ACListActions_Class
  4.     Inherits ContextMenuStrip
  5.  
  6.     Public WithEvents CreateItem As ToolStripMenuItem
  7.  
  8.     Public Sub New()
  9.         MyBase.new()
  10.         CreateItem = Me.Items.Add("Создать")
  11.     End Sub
  12.  
  13.     Public Sub Create(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CreateItem.Click
  14.         MessageBox.Show("Заработала!!!")
  15.     End Sub
  16. End Class

Ответить

Номер ответа: 2
Автор ответа:
 Jak



ICQ: 340809754 

Вопросов: 17
Ответов: 25
 Web-сайт: musautomat.ru
 Профиль | | #2
Добавлено: 04.06.09 15:03
Еще вопросик в продолжение темы:
теперь у меня есть ссылка на ToolStripMenuItem. Как мне программно запустить процедуру привязанную к событию (click например)?
Посоветуйте что-нть, пожалуйста, а то я тут сам с собой разговариваю :(

Ответить

Номер ответа: 3
Автор ответа:
 fluke



ICQ: 318170731 

Вопросов: 15
Ответов: 96
 Профиль | | #3 Добавлено: 05.06.09 15:32
  1. Public Class Form1
  2.  
  3.     ' Елемент меню
  4.     Private m_MenuItem As ToolStripMenuItem
  5.  
  6.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  7.  
  8.         ' Так
  9.         Me.m_MenuItem = ContextMenuStrip1.Items.Add("Text", Image, AddressOf Me.MenuItem_Click)
  10.  
  11.         ' Или так
  12.         Me.m_MenuItem = ContextMenuStrip1.Items.Add("Text")
  13.         AddHandler Me.m_MenuItem.Click, AddressOf Me.MenuItem_Click
  14.  
  15.     End Sub
  16.  
  17.     Private Sub Call_Click()
  18.         'Вызов Click
  19.         Me.MenuItem_Click(m_MenuItem, New EventArgs)
  20.     End Sub
  21.  
  22.     Private Sub MenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  23.         ' Сам Click
  24.     End Sub
  25.  
  26. End Class

Ответить

Номер ответа: 4
Автор ответа:
 Jak



ICQ: 340809754 

Вопросов: 17
Ответов: 25
 Web-сайт: musautomat.ru
 Профиль | | #4
Добавлено: 05.06.09 15:43
Привет, fluke.
Спасибо за пример. буду иметь в виду.
С вызовом - не то.
Я эту менюшку буду создавать динамически и передавать форме. один из пунктов этого меню - "по умолчанию" будет выполняться по двойному клику на гриде этой формы. в обработке этого двойного клика я найду пункт по умолчанию и не буду знать какая процедура прицеплена к нему на обработку. вот мне ее и надо запустить. help, pls

Ответить

Номер ответа: 5
Автор ответа:
 fluke



ICQ: 318170731 

Вопросов: 15
Ответов: 96
 Профиль | | #5 Добавлено: 05.06.09 16:59
Ну почему не будешь знать, вызовешь m_MenuItem.PerformClick() и узнаешь.

Ответить

Номер ответа: 6
Автор ответа:
 Jak



ICQ: 340809754 

Вопросов: 17
Ответов: 25
 Web-сайт: musautomat.ru
 Профиль | | #6
Добавлено: 08.06.09 17:05
Спасибо. Респект.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам