前提・実現したいこと
VB.NETにてデスクトップアプリケーションを作成しております.
外部クラスからPublicなサブメソッドを実装中に以下のエラーメッセージが発生しました。
●エラー BC30469 非共有メンバーを参照するには、オブジェクト参照が必要です。
Public Class Aというクラスにて
メイン画面であるPublic Class MainFormというクラスに定義した
Public Sub Refresh()
と
自分で作成したPublic Class CommonMethodというクラスに定義した
Public Sub Refresh2()
を呼び出しております.
このときメイン画面であるPublic Class MainFormというクラスのメソッドではエラーが発生しないのに対して
自分で作成したPublic Class CommonMethodというクラスのメソッドではエラーが発生します.
同じPublicの外部クラスからのメソッドの呼び出しであるにも関わらず
なぜ挙動が異なるのか分かりません.
WindowsFormとクラスでは扱い方が異なるのでしょうか.
定義しているメソッドは引数、戻り値も無く単なる作業をやらせたいメソッドになります.
発生している問題・エラーメッセージ
エラー BC30469 非共有メンバーを参照するには、オブジェクト参照が必要です。
該当のソースコード
VB.NET
1Public Class A 2 (途中省略) 3 Private Sub OKrslt_TB_KeyDown(sender As Object, e As KeyEventArgs) Handles OKrslt_TB.KeyDown 4 If e.KeyCode = Keys.Enter Then 5 '正しいシリアルを読込んだ時、次の工程へ進める 6 If OKrslt_TB.Text = CodeFin Then 7 formClosingJdg.FormClosingJdg = True 8 9 FormMain.Refresh() 'エラーが生じない 10 CommonMethod.Refresh2() 'エラー BC30469 非共有メンバーを参照するには、オブジェクト参照が必要です。 11 12 (途中省略) 13End Class
試したこと
CommonMethod.Refresh2()に対してインスタンスの型宣言と生成を行うとエラーが生じない.
しかしそれであれば、FormMain.Refresh()の方は何故インスタンスが必要ないのかが分かりません.
補足情報(FW/ツールのバージョンなど)
VisualStudio2019
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー