質問

VB2005環境にてFlexGridを使用しています。

ある列のセルの値が1になったら、その行の背景色を灰色にしたいと
思っているのですが、その方法についてご教授ください。

おそらくは値が変わった時に何かイベントを取得できると思うので、
その時に例えば左から2列めの該当セルが1にされたら、色を変える…
というような考え方で良いでしょうか?
ただ、それを実現するためのイベントが何か、また、行の値を
変える方法がわからず困っています。
(ROWプロパティでしょうか?)

申し訳ないのですが、サンプルコードを交えて教えていただけ
ないでしょうか?
よろしくお願いします。

通報する

回答 (1件)

VB6の頃の FlexGridってことでしょうか?
セルのデータを変更しても それを検知できるイベントはありません
やるとすればEnterイベント(VB6風ならGotfocusイベント)やLeaveCellイベントで
カレントセルの列番号、値を調べて条件に一致したならCellBackColorで色を変更といった具合でしょう
LeaveCellイベントでやる場合は 再帰を不可にする工夫が必要です

  dim n as integer
' 元に戻すための色を設定
  dim cl as Drawing.Color = axMSFlexGrid1.BackColor
  if axMSFlexGrid1.Text = "1" then
    ' 希望の色に変更してください
    cl = Color.Red
  end if
  ' 左から2番目の列がカレントセルなら
  ' FixedColsを考慮したほうがいいでしょう
  if axMSFlexGrid1.Col = 1 then
    ' 行の先頭から末尾までセルの背景色を変更
    for n = axMSFlexGrid1.FixedCols to axMSFlexGrid1.Cols-1
      axMSFlexGrid1.CellBackColor = cl
    next
    ' 元選択されていた列に戻す
    axMSFlexGrid1.Col = 1
  end if

といった具合でしょう ...

行番号は Rowプロパティで取得できますよ

この回答へのお礼

詳しいVerを書き忘れていました。
Flex Grid For.NET 3.0Jです。

しかし、redfox63さんの提示してくれたコードを参考に、
目的の動作を実現することができました。
ありがとうございました。

このQ&Aは役に立ちましたか?0 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

注目の記事

フリーアナウンサー長谷川豊氏の新コーナー「このニュースどう思います?」がスタート!

元フジテレビのフリーアナウンサー長谷川豊氏から気になるニュースについておしトピの皆さんに質問します! 皆さんの意見をもとに長谷川豊氏がコラムを執筆します! アプリリリース記念として最大1万分のアマゾンギフト券プレゼントキャンペーンも実施中!


新しく質問する

毎日見よう!教えて!gooトゥディ

べんりQ&A特集