- - PR -
DataGridViewのセルの表示を単語単位に折り返される挙動を変更したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-09-24 13:47
改行を含む編集可能なセルに文字を入力し、確定した際、単語単位に
折り返される挙動を単語単位ではなく、以下のような(※1)端に来たら 折り返すような挙動にしたいのですが、可能でしょうか? 無理な場合、端に来たら改行を入れるとかしないと駄目かなと思っています。 (※1)を参考にして作成したカスタムTextBoxを(※2)を参考にして DataGridViewに表示し、編集中は希望の動きとなるのですが、編集が終わって 表示される文字は、単語単位に表示されてしまい困っています。 DataGridViewの表示とカスタムTextBoxは画面上で共存している為、 出来るだけ挙動を統一したいのです。 よろしくお願いします。 (※1)TextBoxの表示が単語単位に自動改行される挙動を変更したい http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37654&forum=7&7 (※2)DataGridViewにMaskedTextBoxを表示する http://dobon.net/vb/dotnet/datagridview/maskedtextboxcolumn.html <環境> OS:WindowsXP C#(.NET Framework3.5 Windowフォーム) | ||||
|
投稿日時: 2008-09-25 18:23
Cellの描画を自前でやればいいのではないでしょうか?
DataGridViewTextBoxCellのPaintメソッドあたりで、 セル幅に収まるように文字を切って表示してあげればいいと思います。 #個人的にはWrapMode=Trueの動きでも何の問題もないと思いますが。 | ||||
|
投稿日時: 2008-09-25 19:08
作ってみました。こんな感じでしょうか。VB派なので、VBで。
プロジェクトを新規作成して、フォームにButton、DataGridViewを貼り付け、 下のコードに差し替えれば動くと思います。 中段あたりのCellTemplateを切り替えれば、その違いがわかると思います。 即興で作ったのでコードが汚いのはご愛敬。エラー処理もありません。 セルの幅をすごく小さくするとおかしくなるけど、見なかったことにしましょう
[ メッセージ編集済み 編集者: からあげ 編集日時 2008-09-25 19:09 ] | ||||
|
投稿日時: 2008-09-29 20:32
お返事ありがとうございます。
レスが遅れ、大変申し訳ありません。 ソースの提示までして頂いたのですが、仕様上、入力値そのものに 意味が発生してしまい、改行を安易に入れて表示を同じようにすると いう案では対応できなくなってしまいました。 同じようにする方法をネットで探しはしてみましたが、なかなか見つからず、 時間の関係上、今回は現状維持で行く事にしました。 本当にお返事が遅れてしまい、申し訳ありませんでした。 |
1