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

textBoxでTAB幅調整について

環境/言語:[C#]
分類:[.NET]

はじめまして てんてんと申します。

textBoxでTABの幅を変更したいのですが、何を何処に設定すればよいのでしょうか?

何かプログラムしないと出来ないのかなぁ〜

アドバイスを願います。
TABの幅と言うと、サイズですか?
サイズなら普通に変えれると思います。

もし違うのなら、どういう風な物か具体的に教えてください。
■No7194に返信(YUSKさんの記事)
> TABの幅と言うと、サイズですか?
> サイズなら普通に変えれると思います。
YUSK様
早速のレス有難うございます。

その普通が私には解らないのだと思います。
どのプロパティですか教えて頂けないでしょうか

>
> もし違うのなら、どういう風な物か具体的に教えてください。
上記の通り言われているものずばりの設定方法が
私には解らないみたいです

一応説明させて頂きます。
texeBoxに対してAcceptsTabをTrueに設定するとTab入力が可能になりますよね。
そこで、Tabキーを押下した場合の表示幅(Size)の設定方法を知りたいのです。

いかんせん手探りでPG作っているので
怒らないで教えて頂けないでしょうか。
なるほどなるほど。
タブをtrue(入力可能)にして、TABキーを押して、そのタブキーの幅ですね。
this.textBox1.AcceptsTab = true;
は、タブを文字を許可するだけなので、幅の設定はできないんじゃないかなぁ・・・。

自分は分からないので、他の人お願いします。
■No7197に返信(YUSKさんの記事)
> なるほどなるほど。
> タブをtrue(入力可能)にして、TABキーを押して、そのタブキーの幅ですね。
> this.textBox1.AcceptsTab = true;
> は、タブを文字を許可するだけなので、幅の設定はできないんじゃないかなぁ・・・。
>
> 自分は分からないので、他の人お願いします。
YUSK様
早速のレス有難うございます。

あれれ、意味が違っていたのですね。
説明不足申し訳ありません。

やはり自前で何かPGしないと駄目かなぁ〜
感覚的には、書式設定があれば出来ると思ったんだけど
見つける事が出来ない

自分でもちょっと調査してみます。
TextBoxでは自分で描画するしかないかもしれませんが、RichTextBoxでは、SelectionTabsプロパティが使えるかもしれません。
APi関数を使用すれば、VB6.0と同様に.NETでもできますよ!

 http://www.bcap.co.jp/hanafusa/dotnet/txtbox10.htm
もう遅いかな?
管理人様の指摘通りRichTextBoxならSelectionTabsでできます。
ただ、色々と面倒なんです。

SelectionTabsプロパティの値で幅を制御してやるんですが、
[Selection]と書いてる通り、選択範囲(未選択時はこれから入力するところ)のタブ幅しか変更できません。
なので、全体のタブ幅を変更するには
RichTextBox.SelectAll();
として、全選択してやります。

また、この幅はピクセル単位なので、○文字分にする場合には
(RichTextBox.Font.Size * 72/96) * (文字数)
にしてやる必要があります。
Font.Sizeはフォントの高さなので[72/96]で横幅に直します。
[72/96]の根拠はマイクロソフトのサポートのどこかです。
すいません、どこかは忘れました。
ただし、プロポーションフォント(Pゴシックとか)では横幅が一定では無いので無理があります。

最後に、タブ幅が指定できるのは、一改行ごとに32回までらしく、それ以降を指定するとエラーになってしまいます。
有難うございました。

皆様
情報有難うございました。

やっぱりそのままでは、出来ないんですね。

RichTextBoxを検討します。

本当に有難うございました。

では

■No7430に返信(秋さんの記事)
> もう遅いかな?
> 管理人様の指摘通りRichTextBoxならSelectionTabsでできます。
> ただ、色々と面倒なんです。
>
> SelectionTabsプロパティの値で幅を制御してやるんですが、
> [Selection]と書いてる通り、選択範囲(未選択時はこれから入力するところ)のタブ幅しか変更できません。
> なので、全体のタブ幅を変更するには
> RichTextBox.SelectAll();
> として、全選択してやります。
>
> また、この幅はピクセル単位なので、○文字分にする場合には
> (RichTextBox.Font.Size * 72/96) * (文字数)
> にしてやる必要があります。
> Font.Sizeはフォントの高さなので[72/96]で横幅に直します。
> [72/96]の根拠はマイクロソフトのサポートのどこかです。
> すいません、どこかは忘れました。
> ただし、プロポーションフォント(Pゴシックとか)では横幅が一定では無いので無理があります。
>
> 最後に、タブ幅が指定できるのは、一改行ごとに32回までらしく、それ以降を指定するとエラーになってしまいます。
  • 題名: Re[4]: textBoxでTAB幅調整について
  • 著者: 小野@どっとねっとふぁん
  • 日時: 2004/11/18 13:23:06
  • ID: 7496
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No7494に返信(てんてんさんの記事)

> やっぱりそのままでは、出来ないんですね。

自分がつくったアプリでは、キー入力をチェックして、
Tabキーが入力されたら指定の数だけの半角ブランクを
SendKeysで送り込んでやる、という方法とってます。

ま、こんな方法もあるということで。

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