- ベストアンサー
DataGridViewに関して
開発環境:Visual Basic 2008 あるデータをDataGridViewにて表示させていますが、その際に、データのグループ 単位でグリッド線をを太く、あるいは色を変化させる事ができないかと考えています。 DataGridView全体のグリッド線の色を変化させるような事は可能かと思われますが、 データを表示する過程で、規則性のない(グループ単位)で、行のグリッド線を変更する ような事は可能でしょうか? 教えて下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご質問が「データを表示する過程で、行のグリッド線を変更する事は可能か」というものでしたので、回答の内容になっています。 前回の回答の具体例を言えば、URL先のコード If Me.dataGridView1.Columns("ContactName").Index = _ e.ColumnIndex AndAlso e.RowIndex >= 0 Then の下に下記のコードを付け加えれば、「ContactName」 列の値が"田中"の行のセルに枠が描画されて文字が赤色になるということです。 If Me.dt.Rows(e.RowIndex).Item("ContactName").ToString = "田中" Then Return ※dtはDataGridViewにバインドしているデータテーブルの変数です。 まずは、サンプルを実際に動かしてみれば動作はわかると思うので、実際にそうされてみてはいかがでしょうか。 これは何度も回答すること自体は難儀ではないですが、実際に動作がわからないと質疑応答がかみ合わないと思うからです。
その他の回答 (2)
- hogya
- ベストアンサー率67% (49/73)
>教えて頂いたHPに関する事ですが、変更したい場合にこの関数?処理?を呼び出してやりさえすれば良いのでしょうか? いえいえ、URL先のコードはDataGridViewのイベントハンドラーのひとつです。コマンドボタンで言えば、押下した時に走る「Button1_Click」と同様で、 DataGridViewのCellPaintingイベントは、DataGridViewが描画される時にこのイベントが走り、コードに書いた内容でセルが描画されるということです。 URL先のコードでは、DataGridViewが描画される際に列が「ContactName」 列の場合に、セルがカスタマイズされて描画されます。 例えば、このイベント内ではColumnIndexとRowIndexが取得できるので、特定の条件に合うデータの行と列の罫線を太く描画する、といったことができるということです。
補足
hogya様、ご回答ありがとうございます。 DataGridViewの描画のタイミングというのは、、、データを集計していく中で、ここでグループしたい というタイミングで罫線を太くするという処理を加えるのではなく、あらかじめそれを計算した結果をもとに このイベントハンドラーに組み込むという事なのでしょうか??? ロジック的な話になって申し訳ありませんが、もう少し教えて頂ければ幸いです。 よろしくお願いします。
- hogya
- ベストアンサー率67% (49/73)
自力で描画することにより、罫線を含むセルの外観をカスタマイズすることはできます。 下記リンクを参照してみてください。 http://msdn.microsoft.com/ja-jp/library/hta8z9sz(v=VS.80).aspx
補足
hogya様、ご回答ありがとうございます。 教えて頂いたHPに関する事ですが、変更したい場合にこの関数?処理?を呼び出してやりさえ すれば良いのでしょうか? 当然、太字や色の設定は中に記述するとして、、、 初歩的な質問で申し訳ありませんが、教えて頂きたいと思います。 よろしくお願いします。
お礼
hogya様、何度もご回答ありがとうございます。 やはり組み込んでやってみなくてはならないですね! ありがとうございました。