vb源代码 vb事件代码移植为C#代码

来源:互联网  时间:2016/7/12 14:51:09

关于网友提出的“vb源代码 vb事件代码移植为C#代码”问题疑问,本网通过在网上对“vb源代码 vb事件代码移植为C#代码”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:vb源代码 vb事件代码移植为C#代码
描述:

为Canlendar控件添加事件,在网上找到一个VB代码的(http://itgroup.blueshop.com.tw/jeff377/blog?n=convew&i=2045),由于不会VB,请高手移植一下。代码如下:
       /// 

      
        /// 日期储存格引发的命令事件。      
        /// 
      
         < _      
         System.ComponentModel.Category(WebCommon.Category.Action), _      
         System.ComponentModel.Description("日期储存格引发的命令事件。") _      
         > _      
         Public Event DayCommand(ByVal sender As Object, ByVal e As DayCommandEventArgs)      
      
         ///       
         /// 引发 DayCommand 事件。      
         /// 
      
         Protected Overridable Sub OnDayCommand(ByVal e As DayCommandEventArgs)      
             RaiseEvent DayCommand(Me, e)      
         End Sub    
  
      
        ///       
        /// 引发 PostBack 产生的控制项事件。      
        /// 
      
         Protected Overrides Sub RaisePostBackEvent(ByVal eventArgument As String)      
             Dim oArgument() As String     
             Dim oEventArgs As DayCommandEventArgs      
      
             If String.Compare(eventArgument, 0, "DayCommand", 0, "DayCommand".Length, StringComparison.Ordinal) = 0 Then     
      
                 oArgument = Split(eventArgument, "$")      
                 If oArgument.Length <> 3 Then Exit Sub     
                 oEventArgs = New DayCommandEventArgs()      
                 oEventArgs.CommandName = oArgument(1)      
                 oEventArgs.Date = Date.Parse(oArgument(2))      
                 OnDayCommand(oEventArgs)      
                 Exit Sub     
             End If     
      
             MyBase.RaisePostBackEvent(eventArgument)      
         End Sub     
      
         ///       
         /// 取得引发 DayCommand 事件的用户端指令码。      
         /// 
      
         /// 命令名称。      
        /// 日期。      
         Public Function GetDayCommandEventReference(ByVal CommandName As String, ByVal [Date] As Date) As String     
             Dim sArgument As String     
      
            sArgument = String.Format("DayCommand${0}${1}", CommandName, [Date].ToShortDateString)      
             Return Me.Page.ClientScript.GetPostBackEventReference(Me, sArgument)      
         End Function     


解决方案1:


/// 
/// 日期储存格引发的命令事件。
/// 

[
System.ComponentModel.Category("Action"),
System.ComponentModel.Description("日期储存格引发的命令事件。")
]
public event EventHandler DayCommand;
/// 
/// 引发 DayCommand 事件。
/// 

protected virtual void OnDayCommand(DayCommandEventArgs e)
{
if (DayCommand != null)
DayCommand(this, e);
}
/// 
/// 引发 PostBack 产生的控制项事件。
/// 

protected override void RaisePostBackEvent(string eventArgument)
{
string[] oArgument;
DayCommandEventArgs oEventArgs;
if (string.Compare(eventArgument, 0, "DayCommand", 0, "DayCommand".Length, StringComparison.Ordinal) == 0)
{
oArgument = eventArgument.Split('$');
if (oArgument.Length != 3) return;
oEventArgs = new DayCommandEventArgs();
oEventArgs.CommandName = oArgument[1];
oEventArgs.Date = DateTime.Parse(oArgument[2]);
OnDayCommand(oEventArgs);
return;
}
base.RaisePostBackEvent(eventArgument);
}
/// 
/// 取得引发 DayCommand 事件的用户端指令码。
/// 

/// 命令名称。
/// 日期。
public string GetDayCommandEventReference(String commandName, DateTime date)
{
string sArgument;
sArgument = String.Format("DayCommand${0}${1}", commandName, date.ToShortDateString());
return this.Page.ClientScript.GetPostBackEventReference(this, sArgument);
}

上一篇B/S与 C/S通过Webservice如何进行通讯
下一篇请问一个问题~~大家快来哦·~~
明星图片
相关文章
《vb源代码 vb事件代码移植为C#代码》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)