こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Visual Basic アクセス範囲外?

以下のソースコードを Visual Basic で実行したら,

『InvalidOperationException はハンドルされませんでした。』

というエラーが出たのですが,エラーの意味がいまいちよく掴めなくて困っています.

Public Class Form1
   Dim tc As TestClass = New TestClass
   Class TestClass
      Sub New()
         Form1.ComboBox1.Items.Add("hello world")
      End Sub
   End Class
End Class

おそらく範囲外アクセスのようなことだとは思うのですが,Visual Basic 初心者なので対策がよくわかりません.
以下のソースコードは,起動(実行)した時にクラスのコンストラクタが呼び出されて,コンボボックスのリストに文字列を追加するというだけのものなのですが,それで先のエラーが返ってきてしまっています.
どのようにコードを書き換えればいいのでしょうか.
条件は『起動時』に文字列をリストに追加することです.

投稿日時 - 2011-12-19 23:53:08

QNo.7199394

すぐに回答ほしいです

質問者が選んだベストアンサー

http://msdn.microsoft.com/ja-jp/library/system.invalidoperationexception(v=vs.80).aspx
InvalidOperationException クラス
> オブジェクトの現在の状態に対して無効なメソッド呼び出しが行われた場合にスローされる例外。

Form1起動。
Form1起動中にForm1の既定のインスタンス参照。
まだ起動中(準備ができていない)なので参照できない。
終了。

既定のインスタンス参照も、別クラスでインスタンス操作も
悪い作法なので対策はノーコメント。

投稿日時 - 2011-12-20 10:23:07

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

なぜクラス内でクラスを定義してるんですか?

投稿日時 - 2011-12-20 00:14:19

補足

すみません,書き間違えてました.
こうですね.

Public Class Form1
   Dim tc As TestClass = New TestClass
End Class
Class TestClass
   Sub New()
      Form1.ComboBox1.Items.Add("hello world")
   End Sub
End Class

投稿日時 - 2011-12-20 00:49:09

あなたにオススメの質問