DOBON.NETプログラミング道掲示板
(現在 過去ログ3 を表示中)
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
[
最新記事及び返信フォームをトピックトップへ
]
[ トピック内全3記事(1-3 表示) ] <<
0
>>
■34195
/ inTopicNo.1)
DataGridView 行の背景色の設定
▼
■
□投稿者/ cb400s2000
一般人(1回)-(2019/03/18(Mon) 20:12:41)
環境/言語:[VB.net SQLServer2008]
分類:[.NET]
こんばんは。
visual studio 2010(VB.net) + SQLServerExpress2008を使用しております。
DataGridViewの背景色の事での質問です。
タイムカードのデータを表示をしております。
DataBindをしており、土曜日、日曜日の行の背景色を
変えたいと思っております。
DataGridViewのCellFormattingイベントを使用してのサンプルを
見つけて以下の通り記述をしたのですが、日付を表示している
列にヒットしないようです。
If dgv.Columns(e.ColumnIndex).Name = "clmDate" AndAlso _
typeof e.value is date then
dim intweekday as integer = weekday(e.value)
if intweekday = 1 then
e.cellstyle.backcolor = color.lightpink
end if
End if
そもそも、使用するイベントがおかしいのでしょうか。
アドバイスをお願いします。
引用返信
削除キー/
編集
削除
■34196
/ inTopicNo.2)
Re[1]: DataGridView 行の背景色の設定
▲
▼
■
□投稿者/ Hongliang
大御所(554回)-(2019/03/18(Mon) 21:36:07)
> DataGridViewのCellFormattingイベントを使用してのサンプルを
> 見つけて以下の通り記述をしたのですが、日付を表示している
> 列にヒットしないようです。
とりあえず、dgv.Columns(e.ColumnIndex).Nameとかe.ValueとかをDebug.Printしてみてどんな値が入っているか確認されてみては。
// その日付列って文字列型だったりしませんよね?
ところで、
・バインドしてるデータの特定の列に日付データが入っていて、
・その日付の曜日が土日である行について、
・その行の全てのセルの背景色を変更したい、
という要件でしょうか?
であれば、CellFormattingイベントでは、
1. e.RowIndexを元にDataGridView.RowsからDataGridViewRowを取得する
2. そのDataGridViewRowのDataBoundItemでバインドしているデータの行データを取得する
※バインドしているのがDataTableであれば、DataBoundItemはDataRowViewになります。
3. その行データの日付フィールドの値を見て、条件を満たした場合e.CellStyle.BackColorを変更する
というだけで十分なはずです。
ただし、こうした場合に、日付フィールドが変更されうるケースでは、日付フィールドを変更した時に日付セルだけ更新される(その行の他のセルは色が変わらない)ので、DataGridViewのCellEndEditイベントあたりでDataGridViewのInvalidateRowメソッドを呼び出す必要があります。
日付データのセルだけ背景色を変えたいなら、cb400s2000さんのお書きになっているコードで良いと思います。
あえて言うなら、曜日の判定は
Dim dt As DateTime = CType(e.Value, DateTime)
If dt.DayOfWeek = DayOfWeek.Sunday Then
のようにやる方が.NET的ではあります。
引用返信
削除キー/
編集
削除
■34197
/ inTopicNo.3)
Re[2]: DataGridView 行の背景色の設定
▲
▼
■
□投稿者/ cb400s2000
一般人(2回)-(2019/03/20(Wed) 12:02:32)
ご回答ありがとうございます。
ご提示いただいた内容がわからないことが多いので、
調べながら修正をしてみたいと思います。
後日、経過をご報告します。
取り急ぎ、お礼まで。
引用返信
削除キー/
編集
削除
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-