C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataGridView のセルの描画について


(過去ログ 11 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■2829 / inTopicNo.1)  DataGridView のセルの描画について
  
□投稿者/ 今田 (3回)-(2007/04/17(Tue) 11:21:02)

分類:[.NET 全般] 

何度も質問してすみません。
DataGridViewのセルのToolTipに文字がある場合に、
エクセルのセルにコメントを入れたときのように、該当セルの右上へ赤い三角を表示させたいと考えております。

そこで、DataGridViewCellクラスを継承したクラス(仮にExDataGridViewCellとします)のPaintメソッドをオーバーライドして書こうと思いました。
ただ、そのExDataGridViewCellをデフォルトのセルと指定するCellTempleteみたいなメソッドが見つかりませんでした。
他にも、いろいろな方法を試してみたのですが、いまいち上手くいきません。

どなたか、よい実現方法がお変わりの方がいらっしゃいましたら、ご教授願えないでしょうか?
よろしくお願いいたします。

引用返信 編集キー/
■2839 / inTopicNo.2)  Re[1]: DataGridView のセルの描画について
□投稿者/ y4yama (1回)-(2007/04/17(Tue) 13:32:46)
No2829 (今田 さん) に返信
> 他にも、いろいろな方法を試してみたのですが、いまいち上手くいきません。
##いまいち・・では、何がだめだったのか不明で・・
> どなたか、よい実現方法がお変わりの方がいらっしゃいましたら、ご教授願えないでしょうか?

私も勉強中のものですが、VB2005のHELPで
DataGridView.CellPainting イベント 」を見たら、例があって
次の感じで小さい四角がDrawRectangleできましたヨ

Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting

If 1 = e.ColumnIndex AndAlso e.RowIndex = 2 Then
Dim newRect As New Rectangle(e.CellBounds.X + 1, e.CellBounds.Y + 1, 5, 6)
Dim backColorBrush As New SolidBrush(e.CellStyle.BackColor)
Dim gridBrush As New SolidBrush(Me.DataGridView1.GridColor)
Dim gridLinePen As New Pen(gridBrush)

Try

' Erase the cell.
e.Graphics.FillRectangle(backColorBrush, e.CellBounds)
' Draw the inset highlight box.
e.Graphics.DrawRectangle(Pens.Blue, newRect)
以下、略・・
引用返信 編集キー/
■2855 / inTopicNo.3)  Re[2]: DataGridView のセルの描画について
□投稿者/ 今田 (4回)-(2007/04/17(Tue) 16:31:50)
No2839 (y4yama さん) に返信
> ■No2829 (今田 さん) に返信
>>他にも、いろいろな方法を試してみたのですが、いまいち上手くいきません。
> ##いまいち・・では、何がだめだったのか不明で・・
>>どなたか、よい実現方法がお変わりの方がいらっしゃいましたら、ご教授願えないでしょうか?
>
> 私も勉強中のものですが、VB2005のHELPで
> DataGridView.CellPainting イベント 」を見たら、例があって
> 次の感じで小さい四角がDrawRectangleできましたヨ
>
> Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
>
> If 1 = e.ColumnIndex AndAlso e.RowIndex = 2 Then
> Dim newRect As New Rectangle(e.CellBounds.X + 1, e.CellBounds.Y + 1, 5, 6)
> Dim backColorBrush As New SolidBrush(e.CellStyle.BackColor)
> Dim gridBrush As New SolidBrush(Me.DataGridView1.GridColor)
> Dim gridLinePen As New Pen(gridBrush)
>
> Try
>
> ' Erase the cell.
> e.Graphics.FillRectangle(backColorBrush, e.CellBounds)
> ' Draw the inset highlight box.
> e.Graphics.DrawRectangle(Pens.Blue, newRect)
> 以下、略・・

y4yama 様
上記のソースを参考に解決いたしました。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -