tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルフレックスグリッドのセル背景色取得について
記事No6197
投稿日: 2007/08/30(Thu) 09:18
投稿者YAMA
はじめまして。初めて質問させていただきます。

VB2005で、C1 FlexGrid3.0Jを使っています。
クリックしたセルの背景色を取得したいと思い、色々試しているのですが、うまくいきません。このようなコードを試しているのですが、

↓↓↓------フレックスグリッドクリックイベント--------↓↓↓

With fgData

            Dim rg As CellRange
            rg = fgData.GetCellRange(.Row, .Cols(1).Index)

ここで、Null Referance Exception で落ちてしまいます。
    →→    If rg.Style.BackColor = BackColor.PowderBlue Then
                '処理
            Else
                cboWC.BackColor = Color.White
            End If

        End With

GetCellRange(.Row, .Cols(1).Index) で、うまくセルの情報を取得してくれないみたいです。GetCellStyleで試してみてもうまくいきません。

解決法を教えて下さい。よろしくお願いします。

[ツリー表示へ]
タイトルRe: フレックスグリッドのセル背景色取得について
記事No6209
投稿日: 2007/08/30(Thu) 18:41
投稿者ぜろ
VB2003 C1 FlexGrid2.0Jで開発している者です。
バージョンが違いますので一緒かはわかりませんがちょっと試してみました。

with C1FlexGrid1

            DIm rg As C1.Win.C1FlexGrid.CellRange
            
            rg = C1FlexGrid1.GetCellRange(.Rowsel , .Colsel)

            If rg.StyleDisplay.BackColor.ToArgb = BackColor.PowderBlue.ToArgb Then
                '処理
            Else
                
            End If

End With

ヘルプを見ればわかると思いますがGetCellRangeの.Style はカスタムスタイルを
返します。設定していない場合Nothingを返します。

.StyleDisplay が表示中のスタイルのようです。

私の環境ではif文で演算子'='は、型 System.Drawing.Color および
System.Drawing.Color に対して定義されていません。

と怒られてしまいますので、ToArgbで型を変えて比較しました。

とこんなんでどうでしょう?

[ツリー表示へ]