отправить функцию события на кнопку из одного класса в другой класс - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть класс (class1) в этом классе у меня есть класс функции и пыльника:

class2 _class2 = new class2();    
protected void Button_Click(object sender, EventArgs e)
{
    //do something
}

Теперь у меня есть другой класс (class2) что есть кнопка в нем Я хочу отправить кнопке функцию (Button_Click), чтобы я мог вставить ее в событие нажатия кнопки (button.click + =)

класс2 создает несколько кнопок в цикле для класса1, я хочу, чтобы, когда кто-то одним нажатием одной из кнопок он перешел к функции события 1 класс Я надеюсь, что я был ясен Спасибо за вашу помощь

Ответы [ 3 ]

0 голосов
/ 02 февраля 2012

Вы пытаетесь «пузырить» событие, например, от одного пользовательского элемента управления до вызывающего пользовательского элемента управления? Если это так, вам нужно, чтобы эти вещи:

В элементе управления, где нажимается кнопка (a): - Добавьте обработчик события к кнопке. Нажмите

В контроллере вызывающего абонента (б) - Подписаться на событие, создав функцию, на которую есть ссылка в разметке: usercontrol (a) theeventhandlerina = "the function in b"

0 голосов
/ 02 февраля 2012

, если class2 находится в пределах одного класса, у вас может быть функция add, что-то похожее на

_class2 = new Class2();
_class2.AddButton("button1",ButtonClick);
_class2.AddButton("button2",ButtonClick);
_class2.AddButton("button3",ButtonClick);


//in class2
public void AddButton(string buttonName, EventHandler handler)
{
   var newButton = new Button(buttonName);
   newButton.click+= handler;

}

Это, конечно, надуманный пример, но он должен получить смысл через

0 голосов
/ 01 февраля 2012

Измените protected void Button_Click на public void Button_Click.Затем откуда-то еще:

Button b; // defined in class2, for example

class1 _class1 = new class1();

b.Click += new EventHandler(_class1.Button_Click);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...