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

改行後のテキストボックスのサイズ変更について

分類:[.NET]

VB.NET2005でマルチラインのテキストボックスのWordWrapをtrueにし
自動改行されるたびにテキストボックスの高さを変更したいのですが、
改行を拾ってくれるイベントもなく。
半角、全角をふくめた文字列の長さでテキストボックスの高さを
変えるようなコードも想像つかないのですが
何かいい方法があるなら教えてください。
■No21385に返信(真太郎さんの記事)
> VB.NET2005でマルチラインのテキストボックスのWordWrapをtrueにし
> 自動改行されるたびにテキストボックスの高さを変更したいのですが、
> 改行を拾ってくれるイベントもなく。
> 半角、全角をふくめた文字列の長さでテキストボックスの高さを
> 変えるようなコードも想像つかないのですが
> 何かいい方法があるなら教えてください。

まず改行の数については TextChanged イベントで計上できます。
次に文字列の長さについては改行が見つかってからの文字列で MeasureString すれば計算可能だと思います。

個人的にはこういう入力インターフェイスはユーザビリティが悪いと考えます。
改行ばかり挿入されたら限りなく大きくなってしまう問題もあるでしょう。
ユーザーは初めて見る光景には違和感を感じるものです。
■No21387に返信(じゃんぬねっとさんの記事)
パワポのテキストフォームの様なものではないかと予想
しかしそれをテキストボックスでやるのはちょっと違和感がぬぐえない
■No21387に返信(じゃんぬねっとさんの記事)
>
> まず改行の数については TextChanged イベントで計上できます。
> 次に文字列の長さについては改行が見つかってからの文字列で MeasureString すれば計算可能だと思います。
>
> 個人的にはこういう入力インターフェイスはユーザビリティが悪いと考えます。
> 改行ばかり挿入されたら限りなく大きくなってしまう問題もあるでしょう。
> ユーザーは初めて見る光景には違和感を感じるものです。


すみません。説明が悪かったです。
したいことを具体的に言うと
ボタン押下時に複数個あるコンボボックスの値を
テキストエリアにプログラムから入力していきたいんです。
いくつか入力し、行の終わりに来たら
自動改行されるようにはプロパティで設定できたのですが
改行された時にテキストボックスの高さを
どのように変更したらいいかで悩んでいました。

で、さっそくMeasureStringを試してみたところ
うまく動作してくれました。
ありがとうございます。
少し誤差はありましたが調節してみます。

このコンボボックス、テキストボックス、ボタンのセットを
複数個作り、下に並べていくつもりなのですが
作りたいのが補助的なメモ帳なので文字が隠れてしまうのも
必要以上に幅を取る項目があるのも避けたくてこうしました。

質問の仕方が悪かったですが
また次回行き詰まった時は
よろしくお願いします(-人-)
解決済み!

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