Как обработать событие щелчка для кнопки, которая находится внутри объекта управления?

У меня есть объект управления. В объект управления я добавил кнопку. Я хочу обработать событие click для объекта Button .

      mapcomponent.MapObjectClick += new MapComponent.MapComponent.MapObjectEventHandler(mapcomponent_MapObjectClick);

    Public void mapcomponent_MapObjectClick(object sender, MapObjectEventArg e)
    {
        if (e != null)
        {
            var obj = sender as Control;
            var txt = obj.FindControl("txt1") as TextBox;
            if (txt != null)
                txt.Text = "hello";

            var btn = obj.FindControl("btn1") as Button;

            if (btn != null)
            {
                btn.Command += new CommandEventHandler(b_Command); //handler
            }
        }
    }

 //Not working
Public void b_Command(object sender, CommandEventArgs e)
    {
       //Want to call This Method
    }

2 ответа

Вы должны дать вашей кнопке имя CommandName и перехватить его в событии OnCommand.

btn.Command += new CommandEventHandler(b_Command); //handler
btn.CommandName = "foo";

Public void b_Command(object sender, CommandEventArgs e)
{
    if(e.CommandName == "foo")
    {
        //Do stuff
    }
}

Я не совсем уверен, в чем смысл вашего сценария, но если вы хотите вызвать событие нажатия кнопки программно, вы можете использовать Button.PerformClick() метод.

Другие вопросы по тегам