- ベストアンサー
VB6からの移行したいけど、VB.NETのコントロール配列は?
VB6ではフォーム上にボタンコントロールとかを配列で作成できクリックされた時にはボタンイベントのインデックス値によってどのボタンを押されたが判断できて各処理を記述できていましたが、VB.NETでは同じようにはできないようです。オブジェクト指向的?にはこちらがいいのでしょうが、どうも面倒くさくなったなぁというイメージしかわかず、なぜこの方がいいのかという納得いく書籍とかも見つけることができていません。 どなたか、ご教授頂きたいのですがよろしくお願いします。参考になる書籍やWEBとかもありましたらお教えいただければ幸いです。
- みんなの回答 (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)
.NETは使用していないので実体は存じませんが、 同様に配列処理できないExcelVBAでの取り組み方法です。 クラス化するところは同じだと思いますので、 参考程度に見て下さい。 [クラスモジュールを使った究極のVBAプログラミング] http://www.moug.net/skillup/opm/opm08-01.htm
- omi63
- ベストアンサー率54% (25/46)
コントロール配列に代入すれば使用できるから構わないと考えたのでしょう。 むしろ制限を緩和しているというように表記されているようです。