DOBON.NETプログラミング掲示板過去ログ
テキストボックス+スクロールバーの組合せ
題名: テキストボックス+スクロールバーの組合せ
著者: nepia
日時: 2004/05/19 9:45:30
ID: 4078
この記事の返信元:
(なし)
この記事への返信:
[4227]
Re[1]: テキストボックス+スクロールバーの組合せ
ゆ
2004/05/31 18:09:23
ツリーを表示
環境/言語:[Visual Basic.NET]
分類:[.NET]
os:Windows2000
環境:Visual Basic.NET 2003
こんにちは。
テキストボックスへの表示(投入)長さに合わせてスクロールバーを
自動的に表示させる事は可能なのでしょうか?
以下の頁を参考させて頂いたり、
http://dobon.net/vb/dotnet/control/tbscrollbars.html
リッチテキストボックスで試してみたり(但し改行すると改行コードが入ってしまう)、
プロパティを色々いじってみたりしたのですが実現出来ない状態です。
シンプルな問題の様ですが良い方法がありましたら教授願います。
題名: Re[1]: テキストボックス+スクロールバーの組合せ
著者: ゆ
日時: 2004/05/31 18:09:23
ID: 4227
この記事の返信元:
[4078]
テキストボックス+スクロールバーの組合せ
nepia
2004/05/19 9:45:30
この記事への返信:
(なし)
ツリーを表示
■No4078に返信(nepiaさんの記事)
はじめまして。 いつもこちらを見ているだけじゃ申し訳ないのでわかる範囲で
お答えしますね^^;
VB.NETは触ってないのでC#での例をあげておきます。
(ほとんど一緒ですよね?)
Labelコントロールは、現在の文字に対する必要な幅を取得することが出来ます。
よって、テキストBOXとフォントを合わせて、同じテキストを与えてやれば
必要な幅が取得できます。
その幅が、テキストBOXの幅を超えたときにスクロールバーつけてやれば
いいわけです。
Graphicを使ったりしても可能でしょうけど、これが一番てっとりばやいです。
以下、C#でのサンプルです。
(テキストBOXのWordWrapはFalse,MultiLineはTrueにしてくださいね)
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
Label a = new Label(); //ラベル作成
a.Font = textBox1.Font; //フォントを合わせる
a.Text = textBox1.Text; //テキストをセット
if(textBox1.Width < a.PreferredWidth &&
textBox1.ScrollBars == ScrollBars.None ) //文字幅がテキストBOXを超えて、まだスクロールバーが表示されていないなら
{
textBox1.ScrollBars = ScrollBars.Horizontal; //スクロールバーセット
//水平スクロールバーの高さをプラス
textBox1.Height +=
System.Windows.Forms.SystemInformation.HorizontalScrollBarHeight;
}
else if(textBox1.Width >= a.PreferredWidth &&
textBox1.ScrollBars != ScrollBars.None) //上記の逆処理です
{
textBox1.Height -=
System.Windows.Forms.SystemInformation.HorizontalScrollBarHeight;
textBox1.ScrollBars = ScrollBars.None;
}
}
みづらくてすいません^^;
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
os:Windows2000
環境:Visual Basic.NET 2003
こんにちは。
テキストボックスへの表示(投入)長さに合わせてスクロールバーを
自動的に表示させる事は可能なのでしょうか?
以下の頁を参考させて頂いたり、
http://dobon.net/vb/dotnet/control/tbscrollbars.html
リッチテキストボックスで試してみたり(但し改行すると改行コードが入ってしまう)、
プロパティを色々いじってみたりしたのですが実現出来ない状態です。
シンプルな問題の様ですが良い方法がありましたら教授願います。