我将c#原程序
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e); //register on the page that LoadPostData is being called
Page.RegisterRequiresPostBack(this); //specifies the name of the hidden field that contains the ClientIDs of the expanded rows
string hiddenFieldName = EXPANDEDCLIENTIDS_HIDDENFIELDNAME + this.ClientID; //adds an attribute to the HierarGrid itself that specifies the name of the hidden field that contains the ClientIDs of the expanded rows
this.Attributes.Add("ExpandedClientIDsName", hiddenFieldName); //register the hidden field that contains the ClientIDs of the expanded rows
Page.RegisterHiddenField(hiddenFieldName, ExpandedClientIDs); //register the client script from the embedded resource file (once for all HierarGrids on page)
using(StreamReader reader = new StreamReader(this.GetType().Assembly.GetManifestResourceStream(GetType(), "HierarGrid.js")))

string scriptToggleRow = reader.ReadToEnd(); 
Page.RegisterClientScriptBlock(this.GetType().ToString() + "_scriptToggleRow", scriptToggleRow); 
}

//register the startup client script from the embedded resource file (once per HierarGrid)
using(StreamReader reader = new StreamReader(this.GetType().Assembly.GetManifestResourceStream(GetType(), "Startup.js")))

string scriptStartup = reader.ReadToEnd(); 
scriptStartup = scriptStartup.Replace("{--HiddenFieldName--}", hiddenFieldName);
Page.RegisterStartupScript(this.GetType().ToString() + this.UniqueID + "_Startup", scriptStartup); 
}
}改为vb.net的
Protected Overrides Sub OnPreRender(e As EventArgs)
         MyBase.OnPreRender(e)
         
         'register on the page that LoadPostData is being called
         Page.RegisterRequiresPostBack(Me)
         
         'specifies the name of the hidden field that contains the ClientIDs of the expanded rows
         Dim hiddenFieldName As String = EXPANDEDCLIENTIDS_HIDDENFIELDNAME + Me.ClientID
         
         'adds an attribute to the HierarGrid itself that specifies the name of the hidden field that contains the ClientIDs of the expanded rows
         Me.Attributes.Add("ExpandedClientIDsName", hiddenFieldName)
         
         'register the hidden field that contains the ClientIDs of the expanded rows
         Page.RegisterHiddenField(hiddenFieldName, ExpandedClientIDs)
         
         'register the client script from the embedded resource file (once for all HierarGrids on page)
         Dim reader As New StreamReader(Me.GetType().Assembly.GetManifestResourceStream([GetType](), "HierarGrid.js"))
         Try
            Dim scriptToggleRow As String = reader.ReadToEnd()
            Page.RegisterClientScriptBlock(Me.GetType().ToString() + "_scriptToggleRow", scriptToggleRow)
         Finally
            reader.Dispose()
         End Try
         
         'register the startup client script from the embedded resource file (once per HierarGrid)
         Dim reader As New StreamReader(Me.GetType().Assembly.GetManifestResourceStream([GetType](), "Startup.js"))
         Try
            Dim scriptStartup As String = reader.ReadToEnd()
            scriptStartup = scriptStartup.Replace("{--HiddenFieldName--}", hiddenFieldName)
            Page.RegisterStartupScript(Me.GetType().ToString() + Me.UniqueID + "_Startup", scriptStartup)
         Finally
            reader.Dispose()
         End Try
      End Sub
出错提示“System.IO.StreamReader.Protected Overrides Sub Dispose(disposing As Boolean)”是“Protected”,因此它在此上下文中无法访问。

解决方案 »

  1.   

    用clos好了
    它会帮你调用dispose方法
      

  2.   

    vb中没有与using相对应的用法,这也是c#的一个优势
    至于处理方法,楼上已经说了,在.net中运行时会帮你比较好的处理这些问题
      

  3.   

    c#中用
    if(TemplateDataModeSelection != null)
    {
    TemplateDataModeSelection(this, e);
    return true;
    }
    else
    return false;转成vb后
    If Not (TemplateDataModeSelection Is Nothing) Then
                raiseevent TemplateDataModeSelection(Me, e)
                Return True
             Else
                Return False
             End If这一句If Not (TemplateDataModeSelection Is Nothing) Then
    如何处理??
      

  4.   


                raiseevent TemplateDataModeSelection(Me, e)
                Return True
      

  5.   

    reader.close()
    reader=nothing