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

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

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

Re[2]: DataGridViewでのセルの枠線について


(過去ログ 20 を表示中)

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

■8536 / inTopicNo.1)  DataGridViewでのセルの枠線について
  
□投稿者/ えりんぎ (6回)-(2007/10/02(Tue) 16:51:24)

分類:[VB.NET/VB2005] 

2007/10/02(Tue) 17:25:53 編集(投稿者)
2007/10/02(Tue) 17:25:46 編集(投稿者)

お世話になります。

現在DataGridViewを使用して表を表示しようとしています。

あるデータを表示するのに、ひとつのセル内に二つの画像を表示したり、
ひとつのセルに画像とテキストの両方を表示したりする必要がでてきました。

ただ、見た目上はあくまでもひとつのセル内に表示されているようにしたいため
間にある境界線を消したいのですが、方法がわかりません。

一部のセルの左(もしくは右)の境界線だけ消すなどということはできるのでしょうか?

DataGridViewのカスタマイズなども調べてみたのですが、方法がわからずにいます。


どうか、よろしくお願い致します。
引用返信 編集キー/
■8537 / inTopicNo.2)  Re[1]: DataGridViewでのセルの枠線について
□投稿者/ 魔界の仮面弁士 (441回)-(2007/10/02(Tue) 17:26:32)
No8536 (えりんぎ さん) に返信
> あるデータを表示するのに、ひとつのセル内に二つの画像を表示したり、
> ひとつのセルに画像とテキストの両方を表示したりする必要がでてきました。
自前で描画すれば、一つのセル内に複数のデータを表示できますね。

たとえば下記の最下段の図のような表現方法とか。
http://msdn2.microsoft.com/ja-jp/library/aa730882%28vs.80%29.aspx

蛇足までに、DataGridView 関係のサンプル。
http://windowsclient.net/downloads/folders/applications/entry1304.aspx

> ただ、見た目上はあくまでもひとつのセル内に表示されているようにしたいため
> 間にある境界線を消したいのですが、方法がわかりません。
?? ここでいう境界線とは何ですか? (ひとつのセルなのですよね)

状況がよく分かりませんが、単一のセルであろうと、複数のセルであろうと、
自前で描画している限りは、「境界線を描画する/しない」というだけの事かと。


> 一部のセルの左(もしくは右)の境界線だけ消すなどということはできるのでしょうか?
DataGridView の CellPainting イベントで処理するとか、
セルクラスの描画処理を書き換えるとか。たとえば……。

Public Class Form1
 Private Sub Form1_Load(……) Handles MyBase.Load
  DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single
  DataGridView1.RowCount = 5
  DataGridView1.ColumnCount = 5

  DataGridView1(1, 1) = New Test()
 End Sub

 Class Test
  Inherits DataGridViewTextBoxCell

  Protected Overrides Sub PaintBorder(……)

   advancedBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.None

   MyBase.PaintBorder(graphics, clipBounds, bounds, cellStyle, advancedBorderStyle)
  End Sub
 End Class
End Class
引用返信 編集キー/
■8626 / inTopicNo.3)  Re[2]: DataGridViewでのセルの枠線について
□投稿者/ えりんぎ (7回)-(2007/10/04(Thu) 11:59:45)
No8537 (魔界の仮面弁士 さん) に返信
> ■No8536 (えりんぎ さん) に返信
>>あるデータを表示するのに、ひとつのセル内に二つの画像を表示したり、
>>ひとつのセルに画像とテキストの両方を表示したりする必要がでてきました。
> 自前で描画すれば、一つのセル内に複数のデータを表示できますね。
>
> たとえば下記の最下段の図のような表現方法とか。
> http://msdn2.microsoft.com/ja-jp/library/aa730882%28vs.80%29.aspx
>
> 蛇足までに、DataGridView 関係のサンプル。
> http://windowsclient.net/downloads/folders/applications/entry1304.aspx
>
>>ただ、見た目上はあくまでもひとつのセル内に表示されているようにしたいため
>>間にある境界線を消したいのですが、方法がわかりません。
> ?? ここでいう境界線とは何ですか? (ひとつのセルなのですよね)
>
> 状況がよく分かりませんが、単一のセルであろうと、複数のセルであろうと、
> 自前で描画している限りは、「境界線を描画する/しない」というだけの事かと。
>
>
>>一部のセルの左(もしくは右)の境界線だけ消すなどということはできるのでしょうか?
> DataGridView の CellPainting イベントで処理するとか、
> セルクラスの描画処理を書き換えるとか。たとえば……。
>
> Public Class Form1
>  Private Sub Form1_Load(……) Handles MyBase.Load
>   DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single
>   DataGridView1.RowCount = 5
>   DataGridView1.ColumnCount = 5
>
>   DataGridView1(1, 1) = New Test()
>  End Sub
>
>  Class Test
>   Inherits DataGridViewTextBoxCell
>
>   Protected Overrides Sub PaintBorder(……)
>
>    advancedBorderStyle.Right = DataGridViewAdvancedCellBorderStyle.None
>
>    MyBase.PaintBorder(graphics, clipBounds, bounds, cellStyle, advancedBorderStyle)
>   End Sub
>  End Class
> End Class



魔界の仮面弁士さん

前回に引き続きご回答ありがとうございます。

教えていただいたように毎回ImageColumnの右線を消す方法でできました!
(ちなみに境界線=セルの枠線 の意味で記述しました^_^; わかりずらくてすみません;)

本当にありがとうございました!!
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -