- PR -

ListViewで折り返し表示は可能でしょうか?

投稿者投稿内容
まる
会議室デビュー日: 2005/11/22
投稿数: 1
投稿日時: 2005-12-06 14:18
VisualStudio.netを使ってC#でWindowsアプリケーションを作っています。

列の幅を表示データが超えた時に、デフォルトの設定では「・・・」で省略されますが、これを列の幅で折り返されるようにすることは可能でしょうか?
ListViewのViewプロパティには「Details」を指定しております。
ListView.LabelWrapは、Viewが「LargeIcon」「SmallIcon」の時だけ有効とのことで、「Details」で折り返し表示をする方法が、見当たりません。

どなたかご存知の方がいらっしゃいましたら、ご指導お願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-07 02:28
カスタム ドローで ListItem を描画することになるのかな。
あ、高さまで変えられましたっけ? (^^;)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ジブ
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 135
投稿日時: 2005-12-08 01:03
引用:

じゃんぬねっとさんの書き込み (2005-12-07 02:28) より:
カスタム ドローで ListItem を描画することになるのかな。



ListViewはカスタムドローはまったく考慮していないみたいです。

オーバーライド可能なメソッドは見あたらないですね。

DataGridだといけるかなと思いましたが、行単位での高さの制御ができないですね。
(それらしきメソッドはあるんだけど、なぜかマウス操作以外に呼ぶ手段がない。中途半端)

やはり、そういうことが可能なコントロールを探すということになるのではないかなと思います。

(あまりにたわいもないことなので、もしかしてベンダー保護政策なのかなとかんぐっちゃいます)

あと、無理すればListBoxを使うか。

。。。。。。。

皆さんはこういうニーズがあったらどのようにしていますか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-12-08 02:13
引用:

ジブさんの書き込み (2005-12-08 01:03) より:

ListViewはカスタムドローはまったく考慮していないみたいです。
オーバーライド可能なメソッドは見あたらないですね。


これは、.NET Framework 上での話ですか?
API でも NG だという意味ではないですよね?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2005-12-08 02:51
引用:

これは、.NET Framework 上での話ですか?


と思います。
VB6で行単位に背景色をカスタムドローで変えていましたが
.NETへ移行する際にありゃりゃとなりました。
#その代わりBackColorが新たに実装されてましたけど。
APIでもカスタムドロー構造体に本題を実現する項目がありませんね。
ジブ
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 135
投稿日時: 2005-12-08 07:50
引用:

じゃんぬねっとさんの書き込み (2005-12-08 02:13) より:
引用:

ListViewはカスタムドローはまったく考慮していないみたいです。
オーバーライド可能なメソッドは見あたらないですね。


これは、.NET Framework 上での話ですか?



はい、.NET Framework 1.1 を想定していました。

引用:

API でも NG だという意味ではないですよね?



NM_CUSTOMDRAW を拾っても、実際にカスタムドロー?する手段が見当たりません。
使えそうなAPIがありますか?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-12-08 10:19
引用:

NM_CUSTOMDRAW を拾っても、実際にカスタムドロー?する手段が見当たりません。
使えそうなAPIがありますか?



文字列を折り返して描画するだけなら、Graphics.DrawString() で出来ますよね?
ジブ
大ベテラン
会議室デビュー日: 2005/09/22
投稿数: 135
投稿日時: 2005-12-13 01:11
引用:

渋木宏明(ひどり)さんの書き込み (2005-12-08 10:19) より:
引用:

NM_CUSTOMDRAW を拾っても、実際にカスタムドロー?する手段が見当たりません。
使えそうなAPIがありますか?



文字列を折り返して描画するだけなら、Graphics.DrawString() で出来ますよね?




文字列を折り返して描画するだけならできますけど。。。。。
そもそも
引用:

列の幅を表示データが超えた時に、デフォルトの設定では「・・・」で省略されますが、これを列の幅で折り返されるようにすることは可能でしょうか?


というご質問だったと思うんですが
そういうふうにできるということですか?????

私の知識レベルではカスタムドローでもオーナードローでも無理、または無意味だろうなと思わざるを得ないのですが
もし適切な手段で出来る方法があけば私も知りたいです。

スキルアップ/キャリアアップ(JOB@IT)