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

投稿日: 2004/04/06(Tue) 17:01
投稿者さくら餅
URL
タイトルLineコントロールでの悩み

まずは説明させて頂きます。

一つのフォームにチェックボックスが2個あると仮定します。
配列になっていて、それぞれ名前は以下の通りです。
Check1(1)
Check1(2)

Lineコントロールで作成したラインが10個あると仮定します。
同じく配列になっていてLine1(1)からLine1(10)まであります。

動作は以下の通りです。
Check1(1)をクリックした場合
チェックが入った時、Line1(1)からLine(5)の色が赤になります
チェックを外した時、Line1(1)からLine(5)の色が黒になります

Check1(2)をクリックした場合
チェックが入った時、Line1(6)からLine(10)の色が赤になります
チェックを外した時、Line1(6)からLine(10)の色が黒になります

以下は構文です
Private Sub Check1_Click(Index As Integer)

Dim I As Integer

'チェックを付けた時
    If Form1.Check1(Index).value = 1 Then
        For I = Index * 5 - 4 To Index * 5
            Form1.Line1(I).BorderColor = &HFF       'Line Color = Red
        Next I
    End If

'チェックを外した時
    If Form1.Check1(Index).value = 0 Then
        For I = Index * 5 - 4 To Index * 5
            Form1.Line1(I).BorderColor = &H80000008 'Line Color = Black
        Next I
    End If

End Sub

同フォームにはコマンドボタンを用意してあり、押した時に
Lineの数だけループさせ、赤い色になっているIndexを別配列に格納します。

ここまではよいのです。

本題です(前置き長くて申し訳ありませんでした)
この場合ですと当然ですが以下のパターンしか出ません。
Line1(1)〜Line1(5)だけ赤い色
Line1(6)〜Line1(10)だけ赤い色
Line1(1)〜Line1(10)全てが赤い色
Line1(1)〜Line1(10)全てが黒い色

たとえば2と7だけ赤くしたいということが出来ません。
Lineコントロールにはクリックイベントがありません。
この場合どのように対処すべきでしょうか?
チェックボックスとは別にコンボボックスを用意して
それのチェンジイベントからLineの色を変えるしかないのでしょうか?

チェックボタン*2、Line*10として説明させて頂きましたがですが
実はその数が10倍以上あるのです。
解りやすいようにそうさせて頂きました。

・・・解りにくい所御座いましたらご指摘ください。


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

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

- Web Forum -