您的位置:首页 > 编程语言 > VB

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

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

控件中的代码:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐