タグクラウド1

TOP  >  日記(d3diary)  >  なーおなーお  >  仕事?  >  [Business] .netでcontrol配列

なーおなーお さんの日記

 
2006
12月 13
(水)
14:20
[Business] .netでcontrol配列
前の日記 次の日記 カテゴリー  仕事?
タグ 
本文

 1年に2回くらいしかやらない、PCのプログラムが必要な案件が来ました。
某スタジアムの開閉屋根の走行プログラムの改造。 本体制御はモーション制御なのですが、改造のシミュレーションをパソコン上のシミュレーターを使って行うものでして、そのシミュレーターのプログラムです。

 以前は、VB6のタスク2つで、中間をC+の共有メモリで繋いでいました。 これをVisualBasic.netに移行して、ネイティブなマルチスレッドで1本化するものです。

 ご存知のとおりVB6→net 移行の際のネックは色々ありまして、単純にプロジェクトのアップグレードで動く物の方が少ないくらいです。 一番困るのは、「コントロール配列が使えない」ということでして。。

Sim_net ←のように、14台ある物体の各ランプを種類毎にまとめたり、数値表示を出したりといった使い方ですから、まず間違いなく コントロール配列を使ったほうが簡単でコードも読みやすいです。

 VB6なら、コントロールをコピー~ペーストすると、勝手にコントロール配列にしてくれました。 Label1でしたら、Label1(0)、Label1(1)・・ という具合です。

 しかし、.netに変わってからは、Label1をコピーすると、Label1-1、Label1-2・・となってしまいます。 オンラインマニュアルを見ると、

「Visual Basic .NET では、コントロール配列はサポートされません。イベント モデルに加えられた変更により、コントロール配列が不要になりました。Visual Basic 6.0 では、イベントがコントロール配列によって共有されていましたが、Visual Basic .NET では、複数のコントロールからのイベントがイベント ハンドラによって処理されます。このことにより、同じイベントを共有する異なる型のコントロールグループを作成できるようになります。」

とあります。
一般的には、こちらのサイトにあるような方法が簡単にコントロール配列を作れるでしょう。

ただ、クリックイベントなどの際にどのコントロールが対象なのかを判断する時の処理がわかり辛かったり、同じコントロールの配列群を多数set作る場合などを考慮し 私の場合はコントロールの配列は 「System.Collections.CollectionBase」 クラスを継承したクラスで「ControllArray」による方法を使用しています。
これは、予め汎用的なControllArrayクラスを作成しておけば、追加呼び出しなども自由ですし、よりオブジェクト指向の書き方になってきます。

**
 まあこの程度のことは、プログラマの方からすれば「何を今更低次元な。」 なんでしょうが。。 これが本業でないプログラマにとっては、結構面倒なわけです。

 さて、42setのコントロール配列群をやっと作り終えたので、本体コード移行に着手しなければ・・

閲覧(599)

日記投稿者リスト1

OpenIDログイン

ログイン


ユーザー名:

パスワード:




パスワード紛失  |新規登録

メインメニュー

テーマ選択

(8 テーマ)

カテゴリー1

カレンダー1

«前の月次の月»
12
3456789
10111213141516
17181920212223
24252627282930
31

月表示1

新着日記1

新着コメント1

友人リスト1