Как создать прямой звонок между 2 объектами - PullRequest
0 голосов
/ 25 июня 2010

Я использую C # 2.0 и WinForm для своего приложения. Моя форма имеет 2 пользовательских элемента управления с именами: UserControl1 & UserControl2.

UserControl1 имеет событие CriteriaChanged:

public event CriteriaChangedHandler CriteriaChanged;
public delegate void CriteriaChangedHandler(object sender, CriteriaChangedArg e);

UserControl2 имеет функцию:

public void Do(CriteriaChangedArg e){...}

Я должен использовать свою форму как промежуточный объект:

userControl1.CriteriaChanged += userControl1_CriteriaChanged;

private void userControl1_CriteriaChanged(object sender, CriteriaChangedArg e)
{
userControl2.Do(e);
}

Как создать прямой вызов без myForm, когда userControl1 вызывает событие CriteriaChanged, userControl1 будет вызываться с помощью функции Do ().

Спасибо.

1 Ответ

0 голосов
/ 25 июня 2010

Что не так с вашим текущим методом?Кажется довольно стандартным.

Если вы измените подпись UserControl2

public void Do(object sender, CriteriaChangedArg e)

, вы можете сделать это ...

userControl1.CriteriaChanged += userControl2.Do;
...