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

ラベルコントロールについて

環境/言語:[Win2000 VB.NET2005 .NET Framework 2]
分類:[.NET]

こんにちは。

VB.NETのラベルの扱いについての質問です。

Labelコントロールで、文字を入力した時に全ての文字が見えるように
調整したいのですがどうすればよいでしょうか?(AutoSizeはFalseです。)

コントロールを貼り付けた時の高さでは、文字が隠れてしまうので
ラベルの高さを再設定したいのですが設定する高さを求めれません。

方法ありましたら、よろしくお願いします。
■No23105に返信(みけんさんの記事)
> Labelコントロールで、文字を入力した時に全ての文字が見えるように
> 調整したいのですがどうすればよいでしょうか?(AutoSizeはFalseです。)

Label コントロールはクライアント入力領域が存在しないハズですが...?
どういう意味なのでしょうか?
こんにちは。
説明足らずで申し訳ありません。

プログラムの処理での話です。
「ファイルを取得してその内容を表示する」ということをしたいからです。

ファイルの内容を取得し、プログラムでLabel.textに文字を入力?しています。
2008/10/03(Fri) 16:44:49 編集(投稿者)

1文字分の高さ×(改行数+1)じゃダメかな?
こんにちは。
返信ありがとうございます。

Autosizeではないので、labelの横サイズが決まっている為に
改行以外でも文字数での折り返しがある為にずれてしまうと思います。
これはどうかな?
AutoSizeがTrueのラベルをVisibleをFalseで配置して、
高さを調節したいラベルと同じ内容をいれて、
高さを求めて、
その高さを、
高さを調節したいラベルに設定する。

AutoSizeだと、横幅も自動で変更されてしまうのでダメだと思います。
幅は固定で高さだけを変更したいのです。
DrawString メソッドで直接書いた方が早いのでは。
返信ありがとうございます。

DrawStringを使用したことがないので、よくわからないのですが。

その方法で全文字が表示されるのでしょうか?
ちょっと調べた感じ高さはやはり指定しないとダメそうな感じでしょうか?

申し訳ありません、環境がないので。。。
月曜日まで試すことができなくなってしまいました。。。
一番簡単なのは、ラベルコントロールの高さをこれ以上伸ばしても無駄というところまで伸ばしておく(画面に表示される範囲でいっぱいいっぱいに伸ばしておく)ことではないでしょうか。

もしスクロールバーを表示するということであれば、テキストボックスのようなものを使った方が良いとは思いますが。
返信遅くなって申し訳ありません。

ラベルの高さを処理で使用したいので、高さは丁度かもしくは少し長いくらいがいいのです。

すいません、やりたい事を書いていませんでした。
縦スクロールするラベルを作りたいと思っています。
そこで、一周したらもう一度最初からというこで高さが必要なんです。
> ラベルの高さを処理で使用したいので、高さは丁度かもしくは少し長いくらいがいいのです。

ラベルコントロールでは無理ではないかと思います。よって、ラベルコントロールを使って高さを取得するということも無理だと思います。

やはりテキストボックスを使うべきだとは思いますが、それがだめならば、じゃんぬねっとさんがおっしゃっているように、DrawStringメソッドを使って自分で描画することになります。この時、どこで折り返すかや、高さなどは自分で計算します。非常に面倒ですが、興味がありましたら、

文字列を印刷する
http://dobon.net/vb/dotnet/graphics/printtext.html

を参考にしてください。
返信ありがとうございます。

>ラベルコントロールでは無理ではないかと思います。よって、ラベルコントロールを使>って高さを取得するということも無理だと思います。

みなさんの意見をいろいろ参考にさせて頂き、別の方法で考えてみます。
ありがとうございました。

方法見つかれば書き込みたいと思いますが、とりあえずは解決済みにしてます。
解決済み!

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