• ベストアンサー

VB6からの移行したいけど、VB.NETのコントロール配列は?

VB6ではフォーム上にボタンコントロールとかを配列で作成できクリックされた時にはボタンイベントのインデックス値によってどのボタンを押されたが判断できて各処理を記述できていましたが、VB.NETでは同じようにはできないようです。オブジェクト指向的?にはこちらがいいのでしょうが、どうも面倒くさくなったなぁというイメージしかわかず、なぜこの方がいいのかという納得いく書籍とかも見つけることができていません。 どなたか、ご教授頂きたいのですがよろしくお願いします。参考になる書籍やWEBとかもありましたらお教えいただければ幸いです。

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

  • ベストアンサー
  • tomo_bu
  • ベストアンサー率25% (2/8)
回答No.3

VB6のように、コントロール配列はありません。 イベントモデルの変更によるものです。 コントロール配列の代わりとして、オブジェクト配列を使います。 残念ながら、デザイン画面でindexによる配列処理はできません。 コード画面から、Newでインスタンスを生成させる方法です。 Dim MyButton(10) As New Button イベント処理は、 WithEventで発生させるイベントを宣言し、Handlesによって処理の定義をします。 Private Sub( … )Handles MyButton.Click イベントプロシージャ内の配列の区別は、TabIndexか、Tagを使用します。 VB.NETへの移行の必要性は分かりませんが、 現状のVB.NETでは不便な点が多々あるようです。 また、リバースエンジニアリングの懸念が心配な言語です。私的に、2005のバージョンに期待したいです。

その他の回答 (2)

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.2

.NETは使用していないので実体は存じませんが、 同様に配列処理できないExcelVBAでの取り組み方法です。 クラス化するところは同じだと思いますので、 参考程度に見て下さい。 [クラスモジュールを使った究極のVBAプログラミング] http://www.moug.net/skillup/opm/opm08-01.htm

  • omi63
  • ベストアンサー率54% (25/46)
回答No.1

コントロール配列に代入すれば使用できるから構わないと考えたのでしょう。 むしろ制限を緩和しているというように表記されているようです。

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;827468

関連するQ&A