投稿日 | : 2005/01/26(Wed) 09:46 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^3: 複数のボタンをクラスで扱いたい |
> 将来的には最大400個のボタンを並べたいと
> 考えていたものですから・・・
400個!! ボタンの数が、キーボード上のキーの数より多いのですか?
VBの制限(最大 254 個まで)を超えていますね。
確かに、コントロール配列を使えば、配置できるコントロール数は増えますが、
そもそも、その画面設計を見直された方が良いかと思いますよ。リソースを使いすぎです。
たとえば、一般的なツールバーを見てみますと、各ボタンは独立しておらず、
ツールバー全体で一つのコントロールになっていますよね。
あるいは Excel では、入力可能なセルがたくさん並んでいますが、あれは
TextBox を並べているわけではなく、セル全体が一つのウィンドウになっていますよね。
このような設計にすれば、必要なリソースを減らせますし、コントロール数の上限に
ひっかかる事も無いと思います。
今回の場合、400個のボタンを並べるのではなく、ツールバーを利用してみるとか、
ボタン型セルを配置可能なサードパーティ製の表計算/グリッド系コンポーネントを利用するとか、
そもそも画面設計を見直してみるなどして、コントロールの数を減らした方が良いかと。
> これはもうクラス化をあきらめるしかないでしょうか・・・
クラスにすることで、どんな処理をされたいのかが見えないので、明確な回答は書けませんが、
クラスの替わりに UserControl を利用されては如何でしょう。
複数のクラスのイベントを
Private WithEvents YourClass1() As YourClass
Private Sub YourClass1_YourEvent(ByVal Index As Integer)
End Sub
のようにして利用する事はできませんが、UserControlならば、コントロール配列にする事で、
Private Sub YourControl1_YourEvent(ByVal Index As Integer)
End Sub
のようにして、複数オブジェクトのイベントを取りまとめることができますよね。