2013-10-01 3 views
-1

На моем MDIform события щелчка Я открываю мой Form2, передавая свой контроль и одно события так:Invoke события одной формы из другой

Form2 Obj = new Form2(ListBox1, ListBox1_ItemChanged); 

И мой From2 открывающегося класса объявлен как это:

private readonly ListBox m_AssigndTree; 
private EventHandler navChange; 
public Form2(ListBox1 AssigndTree, EventHandler ListBox1_ItemChanged) 
{ 
    InitializeComponent(); 
    m_AssigndTree = AssigndTree; 
    navChange = NavBarGroup3_ItemChanged; 
} 

Теперь есть событие щелчка на Form2 и я хочу, чтобы запустить событие ListBox1_ItemChanged Как я могу сделать это, чтобы вызвать событие той же формы я использую, чтобы сделать непосредственно myEvent.Invoke += (parameters)

У меня есть следующие события на Form2:

private void button1_DoubleClick(object sender, EventArgs e) 
{ 
    // navChange.Invoke += 
} 
+1

использование обработчика событий см это: http://social.msdn.microsoft.com/Форумы/vstudio/en-US/db5ccada-2eef-4803-90a4-10609abbe13a/how-to-fire-event-in-other-form – Zaki

+0

Где вы можете найти событие 'ItemChanged'' winforms ListBox'? –

+0

@KingKing На самом деле его userDefined элемент управления –

ответ

0

Вы не можете создать событие, объявленный в другом типе, непосредственно.
ListBox1_ItemChanged в вашем примере - всего лишь экземпляр EventHandler делегат, это не и событие.

-1

Для вызова события использовать его как функцию:

m_AssigndTree.ItemChanged(); 

Вам нужно составить аргументы

Смежные вопросы