あなたはほとんどそこにいます。SendMessage を UserControl2 の ListnerMetod にアタッチするだけです。
Mark Hall が言ったように、親ページを知らずに 1 つのコントロールから別のコントロールにイベントを発生させるのは良い習慣ではありません。
親ページからイベントを発生させるサンプル コードを次に示します。
Default.aspx (親ページ)
<%@ Register Src="SenderUserControl.ascx" TagName="SenderUserControl"
TagPrefix="uc1" %>
<%@ Register Src="ReceiverUserControl.ascx" TagName="ReceiverUserControl"
TagPrefix="uc2" %>
<uc1:SenderUserControl ID="SenderUserControl1" runat="server" />
<uc2:ReceiverUserControl ID="ReceiverUserControl1" runat="server" />
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
SenderUserControl1.SendMessage += m => ReceiverUserControl1.ListnerMethod(m);
}
}
SenderUserControl.ascx
public delegate void MessageHandler(string message);
public partial class SenderUserControl : System.Web.UI.UserControl
{
public event MessageHandler SendMessage;
protected void Button1_Click(object sender, EventArgs e)
{
SendMessage("test");
}
}
ReceiverUserControl.ascx
public partial class ReceiverUserControl : System.Web.UI.UserControl
{
public void ListnerMethod(string message)
{
}
}
マーク・ホールの功績