Всем привет. Нашла довольно таки неплохую информацию о использовании рефлексии. собственно сам пример тут http://www.cyberguru.ru/dotnet/reflection/dotnet-reflection.html так вот. для каждого плагина создается подпункт меню. естественно передается name и handler PHP: foreach (string name in plugins.Keys) { MenuItem item = new MenuItem(name, handler); menuItemPlugins.MenuItems.Add(item); } это хорошо когда нужно создавать пункты меню и т.д. Вот я попробовала изменить эту программку так, что бы доступные плагины выводились в листбокс и по выбору из листбокса делать соответствующее действие. но как оказалось передать имя можно довольно просто PHP: foreach (string name in plugins.Keys) { listBox1.Items.Add(name); } а вот код PHP: foreach (string name in plugins.Keys) { listBox1.Items.Add(name,handler); } уже не будет рабочий. так как передавать два параметра нельзя, а по аналогии создать вместо MenuItem item = new MenuItem(name, handler); что то типа ListBox item = new ListBox(name, handler); либо нельзя либо у меня не получается.... думаю еще нужно изменить метод PHP: private void OnPluginClick(object sender, EventArgs args) { Interface.IPlugin plugin = (Interface.IPlugin)plugins[((MenuItem)sender).Text]; plugin.Transform(this); } подскажите пожалуйста как это все организовать. что нужно использовать и т.д. ведь не всегда же нужно создавать меню, а использование разных листбоксов, чекедлистбоксов и т.д. сюда подогнать у меня не получается. Спасибо большое за советы.
в добавок вот нашла подробно... 1) для MenuItem http://msdn.microsoft.com/ru-ru/library/system.windows.forms.menuitem.aspx есть конструктор класса MenuItem(String, EventHandler) Инициализирует новый экземпляр класса с заданной надписью и обработчиком для события Click данного элемента меню. 2) для ListBoxItem http://msdn.microsoft.com/ru-ru/library/system.windows.controls.listboxitem.aspx подобного конструктора нету....
У ListBoxItem нет события Click. Зато есть событие Selected, и ему подобные. Можно обрабатывать выбор элемента на уровне ListBox с помощью события SelectedValueChanged. В общем, вариантов много, главное внимательно читать документацию.