2

ETA: Visual Studio 2008 Express Edition を使用しています。

WndProc をオーバーライドして何らかの形で失敗した場合は、通常、コードが再び機能するまでコードをコメントアウトしてバックトラックします。

ただし、WndProc の奇妙な点は、次のように削除できることです。

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    MyBase.WndProc((m))
End Sub

それでもエラーがスローされます。

エラーをリセットするには、コードを削除して再入力する必要があります。

他の誰かがこれを経験しましたか?

到着予定時刻:

Chris Haas による以下の回答。

私は気づいていませんでしたが、この問題はリフレクターのコードを使用したときにのみ発生したに違いありません。Reflector は vb.net に誤って変換し、WndProc ベースへの呼び出しに余分なブラケットを挿入します。

4

1 に答える 1

5

引数を括弧で囲むと、ByRef呼び出しがオーバーライドされ、代わりに呼び出されByValます。プロシージャ呼び出しによって変更されていない引数 - 基になる変数を参照してください。

コードを次のように変更するだけです。

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    MyBase.WndProc(m)
End Sub
于 2010-04-21T16:29:46.183 に答える