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

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

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

Re[2]: DataGridViewセルでの省略記号を表示させないように


(過去ログ 67 を表示中)

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

■38759 / inTopicNo.1)  DataGridViewセルでの省略記号を表示させないように
  
□投稿者/ きゃむ (1回)-(2009/07/24(Fri) 16:38:53)

分類:[C#] 

初めまして。スマートな解決方法が見つからないため、ご質問させて頂きます。

DataGridViewのセルの表示に関してなのですが、
文字列がセルの幅を超えても改行されないようにするには、
セルスタイルのDefaultCellStyle.WrapModeプロパティをDataGridViewTriState.Falseにしますが、
この時、文字列がセルの幅を超えた場合は、省略記号として文字列のお尻に「...」が入ります。

等幅のフォントを使用している都合上、セルの幅に対するこの「...」の幅の割合が高くなってしまい、
ただでさえセルに入りきらない文字列が「...」によってさらに短くされてしまっている状態です。
そこで、この「...」は表示させずにセルに表示できる分だけの文字列を全て表示させる方法を探しています。

いくつか条件があり、
@行高さを変えたくないため、改行はさせない。
A文字列自体をセル幅に合わせて切ってしまうのは、実行時にユーザーがセル幅(列幅)を変えた場合に都合が悪い。
B「Reflector」という逆アセンブルソフトを使って、描画部分のコードを見たのですが、
 Paintメソッドの中で更にPaintPrivateという非公開のプライベートメソッドを使用して「...」の処理&描画をしており、
 Paintメソッドをオーバーライドしただけでは簡単にはいかない(そのPaintPrivateを自作しないといけない)。

実際にBに書いたようにPaintPrivateを自作して、現状は正常に動作しているのですが、自作である以上、
何かの際に不具合が出ないとも限らないので、もしかしたらもっと良い方法があるのではと思いご質問させて頂きました。
宜しくお願い致します。
引用返信 編集キー/
■38761 / inTopicNo.2)  Re[1]: DataGridViewセルでの省略記号を表示させないように
□投稿者/ やじゅ (1129回)-(2009/07/24(Fri) 17:02:39)
やじゅ さんの Web サイト
No38759 (きゃむ さん) に返信
> 初めまして。スマートな解決方法が見つからないため、ご質問させて頂きます。
>
> DataGridViewのセルの表示に関してなのですが、
> 文字列がセルの幅を超えても改行されないようにするには、
> セルスタイルのDefaultCellStyle.WrapModeプロパティをDataGridViewTriState.Falseにしますが、
> この時、文字列がセルの幅を超えた場合は、省略記号として文字列のお尻に「...」が入ります。
>
> 実際にBに書いたようにPaintPrivateを自作して、現状は正常に動作しているのですが、自作である以上、
> 何かの際に不具合が出ないとも限らないので、もしかしたらもっと良い方法があるのではと思いご質問させて頂きました。
> 宜しくお願い致します。

ちなみに、省略記号は「Ellipsis」というそうです。
http://www.atmarkit.co.jp/fdotnet/dotnettips/419autoellipsis/autoellipsis.html

DataGridViewに、AutoEllipsisプロパティが無いので
現状は、CellPainting イベントで書き換えるくらいしか方法はなさそうですね。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=4048&KLOG=13
引用返信 編集キー/
■38808 / inTopicNo.3)  Re[2]: DataGridViewセルでの省略記号を表示させないように
□投稿者/ きゃむ (2回)-(2009/07/25(Sat) 12:11:27)
No38761 (やじゅ さん) に返信
> DataGridViewに、AutoEllipsisプロパティが無いので
> 現状は、CellPainting イベントで書き換えるくらいしか方法はなさそうですね。
> http://bbs.wankuma.com/index.cgi?mode=al2&namber=4048&KLOG=13

単純な抜け道はないということですね。。。
それが分かっただけでも十分です。自作描画のまま進めようと思います。
どうもありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -