VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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
のようにして、複数オブジェクトのイベントを取りまとめることができますよね。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -