投稿日 | : 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倍以上あるのです。
解りやすいようにそうさせて頂きました。
・・・解りにくい所御座いましたらご指摘ください。