委托与事件的简单应用(不同控件之间的控制及参数传递,C# VB)

在应用用户控件中,经常会遇到一个控件控制另一个控件的情况,同时还需要将参数传送给去。现举一个简单的实例,控件中的按钮按下后,在主页面中输入一个行参数。

控件中的代码:

public partial class WebUserControlWithEvent : System.Web.UI.UserControl

{

     public delegate void SendMessage(string strMsg);

     public event SendMessage sendTextEvent;

     protected void btnSubmit_Click(object sender, EventArgs e)

     {

        //事件的触发点:

         sendTextEvent(txtMsg.Text);    

     }

     protected void Page_Load(object sender, EventArgs e) 

     {

         //.....       

     }

 }

 

主页面中引入控件后的代码:

 public partial class EventSample : System.Web.UI.Page

 {

     protected void Page_Load(object sender, EventArgs e)

     {

         WebUserControlWithEvent1.sendTextEvent += new WebUserControlWithEvent.SendMessage(WebUserControlWithEvent1_sendTextEvent);

     }

     void WebUserControlWithEvent1_sendTextEvent(string strMsg)

     {

         ShowMessage(strMsg);

      }

     private void ShowMessage(string strMessage)

     {

          //.......

     }

}

__________________________________________________________________________________

用VB写的代码如下(VB中的实例为二个参数):

控件中:

Partial Class WebControlWithEvent     Inherits System.Web.UI.UserControl

    Public Delegate Sub SendMessage(ByVal msgId As String, ByVal msgTxt As String)     Public Event sendTextEvent As SendMessage

    Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click         RaiseEvent sendTextEvent("SA001", txtMsg.Text)     End Sub End Class

主页面中引入控件后的代码:

Partial Class SampleEvent     Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load         AddHandler WebControlWithEvent1.sendTextEvent, AddressOf obj_SendMessage     End Sub

    Sub obj_SendMessage(ByVal msgId As String, ByVal msgTxt As String)         MessageBarControl1.ShowMessage("SA", msgId, New String() {msgTxt}, MessageBarControl.MessageType.InformMsg)     End Sub End Class

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值