2012-03-19 85 views
0

我遇到一个问题,我在网上找到的vb.net代码转换为C#。试图将VB.Net转换为C#

vb.net

Protected Overridable Sub OnRowClicked(ByVal e As GridViewRowClickedEventArgs) 
    'raise the RowClicked event 
    RaiseEvent RowClicked(Me, e) 
End Sub 

'setup our EventHandler for RowClicked 
Public Custom Event RowClicked As EventHandler(Of GridViewRowClickedEventArgs) 
    AddHandler(ByVal value As EventHandler(Of GridViewRowClickedEventArgs)) 
     Events.AddHandler(RowClickedEventKey, value) 
    End AddHandler 

    RemoveHandler(ByVal value As EventHandler(Of GridViewRowClickedEventArgs)) 
     Events.RemoveHandler(RowClickedEventKey, value) 
    End RemoveHandler 

    RaiseEvent(ByVal sender As Object, ByVal e As GridViewRowClickedEventArgs) 
     Dim ev As EventHandler(Of GridViewRowClickedEventArgs) = TryCast(Events(RowClickedEventKey), EventHandler(Of GridViewRowClickedEventArgs)) 
     If Not IsNothing(ev) Then 
      ev(sender, e) 
     End If 
    End RaiseEvent 
End Event 

C#

protected virtual void OnRowClicked(GridViewRowClickedEventArgs e) 
    { 
     //raise the RowClicked event 
     if (RowClicked != null) 
     { 
      RowClicked(this, e); 
     } 
    } 

    //setup our EventHandler for RowClicked 
    public event EventHandler<GridViewRowClickedEventArgs> RowClicked 
    { 
     add { Events.AddHandler(RowClickedEventKey, value); } 

     remove { Events.RemoveHandler(RowClickedEventKey, value); } 

    } 

我曾经在网络上的代码转换器。问题是在线

//raise the RowClicked event 
    if (RowClicked != null) 
    { 
     RowClicked(this, e); 
    } 

我得到的错误是:“RowClickGridView.RowClicked”事件只能出现在的+ =或左边 - =

任何想法?

回答

0

只是删除添加/删除 - 部分:

public event EventHandler<GridViewRowClickedEventArgs> RowClicked; 
+0

不遵守?但我需要那个事件处理程序。 – MindGame 2012-03-19 16:47:16

0

我没有看到特别参选这里。我只是使用标准的事件结构,并忘记这个自定义的东西。

+0

我该怎么做? – MindGame 2012-03-19 16:50:22

+0

C#中的标准事件处理程序接线语法为Object.Event + = EventHandlerFunction; – 2012-03-19 20:38:35

+0

http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx – 2012-03-19 20:38:59

0
protected virtual void OnRowClicked(GridViewRowClickedEventArgs e) 
{ 
    EventHandler<GridViewRowClickedEventArgs> temp = RowClicked ; 
    //raise the RowClicked event 
    if (temp != null) 
    { 
     temp(this, e); 
    } 
} 


public event EventHandler<GridViewRowClickedEventArgs> RowClicked; 

CF http://msdn.microsoft.com/en-us/library/db0etb8x.aspx

+0

I只是尝试了这一点,我得到了同样的错误消息在这一行“EventHandler temp = RowClicked;” – MindGame 2012-03-19 16:52:45

+0

我不相信......你是否按照我所描述的那样宣布活动并删除添加和删除行?你不需要那些模板化的版本。 – Hogan 2012-03-19 16:55:58

+0

我在asp.net中扩展了GridView控件,我添加了公共事件EventHandler RowClicked;“它说它已经声明了。嗯 – MindGame 2012-03-19 16:56:15