DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewのセル表示について

環境/言語:[VB.NET、.NET Framework 3.5]
分類:[.NET]

DataGridViewのセルの表示について質問です。

DataGridViewコントロールでは、列幅がセルの表示内容より、
短いとき、下記の様に省略表示されます。

例)
「2008/08/04(月)」をセルにセットした場合
   ↓↓↓

「2008/08...」と表示


上記の様な表示では無く、セルの列幅により、文字列を切り捨て表示する方法はありませんでしょうか。
(「08/04(月)」と表示させたいのですが・・・。)

#セルに日付をセットする前に年部分をカットしてもいいのですが、
それだとソートするときに、不都合が出るので、年部分はとっておきたいのですが・・・。

宜しくお願いします。
■No22558に返信(はてなさんの記事)
> DataGridViewコントロールでは、列幅がセルの表示内容より、
> 短いとき、下記の様に省略表示されます。

これで如何でしょう。VB ではなく C# のコードですが、大意は掴めるかと。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=4048&KLOG=13

> これで如何でしょう。VB ではなく C# のコードですが、大意は掴めるかと。
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=4048&KLOG=13

教えて頂いたURL先のコードについて、VBで作り直し試したところ
うまくいきました。

有難うございました。

とりあえず、作成したコードを添付しておきます。

------------------------------------------------------------------

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

'セルが選択されているかどうか
Dim selected As Boolean = DataGridViewElementStates.None <> (e.State & DataGridViewElementStates.Selected)

'セルの背景を塗りつぶす
e.PaintBackground(e.ClipBounds, selected)

'テキストの配置など
Dim flags As TextFormatFlags = TextFormatFlags.Right

'文字列の描画
TextRenderer.DrawText(e.Graphics, e.Value, e.CellStyle.Font, e.CellBounds, e.CellStyle.ForeColor, flags)

End Sub
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板