繁体   English   中英

从C#将一些代码转换为vb.net

[英]Converting some code to vb.net from c#

我正在将某些类从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" />

或使用Tim Schmelter的方法。

请改用此方法,这是VB的方法。 VB使用AddHandler标识事件,并且AddressOf指向委托。

AddHandler mGrid.RowDataBound, AddressOf RowDataBoundHandler

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM