将一些代码从 c# 转换为 vb.net
本文关键字:转换 vb net 代码 | 更新日期: 2023-09-27 17:56:27
我正在将某些类从 C#
转换为 VB.NET
,但此行无法正确转换。 我尝试了几个在线转换器,但它们似乎不起作用。
this.mGrid.RowDataBound += new GridViewRowEventHandler(RowDataBoundHandler);
转换后的VB.NET
不起作用。
Me.mGrid.RowDataBound += New GridViewRowEventHandler(RowDataBoundHandler)
以下是我从中得到的两个错误。谁能帮我,因为我的大脑现在已经死了。
谢谢
Error 4 Delegate 'System.Web.UI.WebControls.GridViewRowEventHandler' requires an 'AddressOf' expression or lambda expression as the only argument to its constructor. C:'My Projects'PMS'App_Code'GridViewHelper.vb 110 62 C:'My Projects'PMS'
Error 3 'Public Event RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event. C:'My Projects'PMS'App_Code'GridViewHelper.vb 110 9 C:'My Projects'PMS'
不需要在 VB.NET 中以编程方式注册事件处理程序。可以使用 aspx 标记来声明事件处理程序( OnRowDataBound = "RowDataBoundHandler"
),也可以使用 Handles
子句。您甚至可以将一个用于多个控件,并用逗号分隔它们。
Protected Sub GridView1_RowDataBound(sender As Object, e As GridViewRowEventArgs) _
Handles GridView1.RowDataBound
End Sub
如果您仍然想手动添加它,请使用AddHandler
:
AddHandler Me.GridView1.RowDataBound, AddressOf RowDataBoundHandler
如果要手动绑定事件,请尝试使用AddHandler
:
AddHandler Me.mGrid.RowDataBound, AddressOf RowDataBoundHandler
或者,可以在 ASPX 标记中绑定事件:
<asp:GridView ... RowDataBound="RowDataBoundHandler" runat="server" />
或者使用蒂姆·施梅特的方法。
请改用这个,这是 VB 执行此操作的方式。 VB 使用 AddHandler 来标识事件,而 AddressOf 指向委托。
AddHandler mGrid.RowDataBound, AddressOf RowDataBoundHandler