4

次のメソッドはエラーを返します:'イベントの初期化が見つかりません'そしてSystem.Web.UI.Pageでエラーが発生します

Visual Studio 2010、フレームワーク3.5

Public Class_default
    Inherits System.Web.UI.Page

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init

End Sub
4

4 に答える 4

4

私はVB.NETの専門家ではありませんが(C#で書いています)、問題の原因は、Page_InitではなくOnInitメソッドをオーバーライドする必要があることであると言えます。

したがって、次のコードを使用する必要があります。

Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Friend Overrides Sub OnInit(ByVal e As EventArgs)
        MyBase.OnInit(e)
    End Sub
End Class
于 2012-11-16T21:11:21.400 に答える
1

マキシムは正しいと思いますが、次のようにしてイベントハンドラーを追加することもできます。

AddHandler Me.Init, AddressOf Page_Init

そうだと思います。申し訳ありませんが、私のVBはかなり錆びています。

于 2012-11-16T21:17:31.397 に答える
1

上手、

マークアップで使用していると思いますが、ハンドラーにもキーワードAutoEventWireup="true"をマークしています。Handles

AutoEventWireupは機能せず、クラスのプライベートメンバーに直接アクセスできません。

不必要なパフォーマンスペナルティを設定AutoEventWireup="false"して保存します。ハンドラーは明示的にイベントであるため、引き続き起動する必要があります。HandlesPage.Init

イベントを明示的に処理しているので、イベントハンドラーの名前を変更したり、醜いものを削除したりすることもできます_

于 2012-11-23T09:36:42.313 に答える
0

Crystal Reportsコードの大部分は、Page_Loadイベントに含まれている可能性があります。Page_Initに移動すると、正しく機能することがわかります。

于 2015-05-21T13:59:46.113 に答える