C1.Win.C1FlexGridの選択行処理
- 題名: C1.Win.C1FlexGridの選択行処理
- 著者: Aliceとうさぎ
- 日時: 2006/08/08 9:32:13
- ID: 17048
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: C1.Win.C1FlexGridの選択行処理
- 著者: KEI
- 日時: 2006/08/08 11:39:18
- ID: 17049
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: C1.Win.C1FlexGridの選択行処理
- 著者: Aliceとうさぎ
- 日時: 2006/08/18 13:05:06
- ID: 17173
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
初めて投稿させて頂きます。
.NET初心者です。説明に不手際があったらお許し下さい。
fxg表というC1.Win.C1FlexGridを作りました。
項目名を表記したFixedが2行あります。
RowIndex2から、2行ずつBackColorをWhiteとOldLaceに設定してあります。
fxg表をクリックした時、
背景色は変えずに、赤の2重線で囲いたいので、
以下のソースを記述しました。
---------------------------------------------------
'FormのLoad時
'表グリッドのプロパティ設定
fxg表.Styles.Add("White")
fxg表.Styles("White").BackColor = Color.White
fxg表.Styles("White").Border.Style = C1.Win.C1FlexGrid.BorderStyleEnum.Flat
fxg表.Styles("White").Border.Color = Color.LightGray
fxg表.Styles.Add("OldLace")
fxg表.Styles("OldLace").BackColor = Color.OldLace
fxg表.Styles("OldLace").Border.Style = C1.Win.C1FlexGrid.BorderStyleEnum.Flat
fxg表.Styles("OldLace").Border.Color = Color.LightGray
fxg表.Styles.Add("WhiteSelect")
fxg表.Styles("WhiteSelect").BackColor = Color.White
fxg表.Styles("WhiteSelect").Border.Style = C1.Win.C1FlexGrid.BorderStyleEnum.Double
fxg表.Styles("WhiteSelect").Border.Color = Color.Red
fxg表.Styles.Add("OldLaceSelect")
fxg表.Styles("OldLaceSelect").BackColor = Color.OldLace
fxg表.Styles("OldLaceSelect").Border.Style = C1.Win.C1FlexGrid.BorderStyleEnum.Double
fxg表.Styles("OldLaceSelect").Border.Color = Color.Red
----------------------------------------------------
'グリッド選択時
Private Sub fxg表_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles fxg表.Click
Dim i As Integer
For i = 2 To fxg表.Rows.Count - 1 Step 2
fxg表.DrawMode = DrawModeEnum.OwnerDraw
If i = fxg表.Selection.r1 Then
If (i \ 2) = (i / 2) Then
If i \ 4 = i / 4 Then
fxg表.Rows(i).Style = fxg表.Styles("WhiteSelect")
fxg表.Rows(i + 1).Style = fxg表.Styles("WhiteSelect")
Else
fxg表.Rows(i).Style = fxg表.Styles("OldLaceSelect")
fxg表.Rows(i + 1).Style = fxg表.Styles("OldLaceSelect")
End If
Else
If i \ 4 = i / 4 Then
fxg表.Rows(i).Style = fxg表.Styles("WhiteSelect")
fxg表.Rows(i - 1).Style = fxg表.Styles("WhiteSelect")
Else
fxg表.Rows(i).Style = fxg表.Styles("OldLaceSelect")
fxg表.Rows(i - 1).Style = fxg表.Styles("OldLaceSelect")
End If
End If
Else
If (i \ 2) = (i / 2) Then
If i \ 4 = i / 4 Then
fxg表.Rows(i).Style = fxg表.Styles("White")
fxg表.Rows(i + 1).Style = fxg表.Styles("White")
Else
fxg表.Rows(i).Style = fxg表.Styles("OldLace")
fxg表.Rows(i + 1).Style = fxg表.Styles("OldLace")
End If
Else
If i \ 4 = i / 4 Then
fxg表.Rows(i).Style = fxg表.Styles("White")
fxg表.Rows(i - 1).Style = fxg表.Styles("White")
Else
fxg表.Rows(i).Style = fxg表.Styles("OldLace")
fxg表.Rows(i - 1).Style = fxg表.Styles("OldLace")
End If
End If
End If
Next
End Sub
----------------------------------------------------
これだと偶数行選択時は上手くいくのですが
奇数行選択時にはWhiteSelectやOldLaceSelectプロパティが適応されません。
自分では偶数行では、選択行と1行下、奇数行では選択行と1行上と
書いているつもりですが、どうか間違いをご教授下さい。
よろしくお願い致します。