• ベストアンサー

リッチテキストボックスのタブ位置を変えたい

VSでC#のプログラムを作っています。 リッチテキストボックスにテキストファイルを読込んだのですが、タブ位置が8文字分になっているのを4文字(任意の文字数)に直したいのです。 うまい方法が見つからないので仕方なく空白4文字と 置き換えていますが、できればタブはそのまま残したいのです。 4文字タブにするにはどうすれば良いでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

フォントの文字サイズからPixelサイズを得る についてですが、 http://www.microsoft.com/japan/msdn/windows/windowsxp/FixedPitchFont.asp によると 3の倍数のポイント数にフォントのサイズを設定してやれば、 int tabPixelSize =(int)(richTextBox1.Font.Size * 96/72/2*4);//4tab にしてやれば良いとわかりました。 この値を使うと、うまくいきます。(SelectionTabs でも) /* 96/72:全角文字幅 96/72/2:半角文字幅 96/72/2*4:半角4文字分の文字幅 */

catecholamine
質問者

お礼

重ね重ねご親切な回答ありがとうございます。 おかげで解決することができとても助かりました。 教えていただいた各サイトの情報も有意義なものばかりで勉強になります。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>不思議なことにSelectionTabsの内容が初期状態ではゼロになっているのです。??? ほんとですね! マニュアルを読んで取得できるとあったので、それでうまくいくとおもっていました。 その後、MeasureStringを使ってフォントの文字サイズからPixelサイズを得るとか色々試してみましたが、 どういうわけかうまくいかなかったです。 検索してみたところ WinAPIでのサンプルを見つけました http://blog.mag2.com/m/log/0000104516/106832576.html 試してみたところでは、こちらはうまくいきました。 .NET でWinAPI を使うのはなんだかなぁって感じですが・orz

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>タブ位置をピクセル数で設定するようになっているので使いにくいですね。 そうですね。 でも、 >タブ位置が8文字分になっているのを4文字 という状況であれば、 現在の状態を取得すれば、8文字タブになっているわけで、 4文字タブにするには、半分に 任意にするには、n/8にすればいいような気がします。

catecholamine
質問者

お礼

重ねての回答ありがとうございます。 実は同じことを考えていたのですが、不思議なことにSelectionTabsの内容が初期状態ではゼロになっているのです。??? いちおう適当な値(ピクセル)を代入して4文字タブを実現していますが、もっとちゃんとしたやり方をWinAPIあたりを使ってできないか調べているところです。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

SelectionTabs を使ってタブ位置の設定をするとか

catecholamine
質問者

お礼

回答ありがとうございます。 SelectionTabsというプロパティはプロパティウィンドーには表示されていないので気付きませんでした。 ただ、タブ位置をピクセル数で設定するようになっているので使いにくいですね。 現在のフォント1文字をピクセル数に変換するメソッドとかがあったら教えていただけないでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • tab位置固定のテキストエディタをご紹介ください

    少々カテ違いのような気もしますが、プログラミングに精通している方ならわかるかな?と思い、ここに質問しました。 tabキー使用時、置換空白文字数が可変長のテキストエディタをご存じの方、是非ご紹介頂きたいです。 有料、無料は問いません。 例えば4tab設定の場合、以下のような動きをするエディタです。 ・先頭から5文字入力し、tabを挿入すると3文字分の空白が挿入される ・先頭から7文字入力し、tabを挿入すると1文字分の空白が挿入される 現在、秀丸エディタを使用していますが、tabの置換空白文字数が固定(カーソル位置に関わらず、tabは○文字空白を挿入するという動き)なので、私的には不都合なのです。 秀丸エディタの場合(4tab設定時) ・先頭から5文字入力しtabを挿入すると、最後の文字位置から4文字分の空白が挿入される ・先頭から7文字入力しtabを挿入すると、最後の文字位置から4文字分の空白が挿入される 秀丸エディタの設定変更で対応できればベストなのですが、どうやってもできないようなので・・・ よろしくお願いします。

  • テキストボックスの位置

     決まった枠組みの中にテキストボックスを入れて、文字をいれて行きたいのですが、テキストボックスの位置をうまく配置できません。ワードのルーラーもいまいちわかりにくいです。 テキストボックスの位置を用紙の上から何センチとかに設定できないでしょうか?

  • 【Access】レポートでテキストボックスやラベル中の文字配置を下にしたい

    レポートにおいて、テキストボックスやラベルのプロパディで 書式タブ中、「文字配置」というのがありますが、 そのなかに「下」というのがありません。 テキストボックスやラベルで 縦のスペースに対して文字数が少ないので、 すべてにおいて文字位置が「上」になっています。 これですと見た目もあまりよくなく、 文字位置を「下」にしたいのですが、 なにか方法はございますでしょうか? よろしくお願いいたします。

  • テキストボックスのタブ

    VisualBasicのテキストボックスの中に文字を入力しているときにタブキーを押すと、8文字分ぐらい移動してしまいます。これを4文字ぐらいに制限したいのですが、どのようにすればいいのでしょうか?教えてください。

  • テキストファイルでタブ文字を何に使うのか?

    一般的なテキストファイルでタブ文字はどのような用途で使用しますか? 私の場合は基本的に、プログラムのソースコードで行頭のインデントにしか使いません。 あと強いて言うならば、TSVファイルの区切り文字として使用したり、構造化テキスト(そういうフリーソフト)のファイル内でのシーケンスとして使う事はありますが、これはテキストファイルではあるのですが、特別なルールのあるやや特殊なファイルといえると思います。なので、少なくとも今回はTSVや構造化テキストは「一般的なテキストファイル」ではないと考えます。 ※ソースコードなどで複数行の桁位置そろえで「行中」に使用しているケースを見たことがありますがよくない例ではないかと思います。 なので私は個人的に、「一般的なテキストファイルではタブ文字は行頭のインデントにしか使わない」と思っています。 これはあっていますか? テキストファイルでそれ以外に使うことってありますか? あるならどのような用途で使用しているのか教えてください。 よろしくお願いします。

  • テキストボックスの文字位置について

    Wordでテキストボックスの文字を揃える機能ですが、 縦位置の中央に文字を動かしたいのですがどうすれば? エクセルには、縦位置中央の設定があるのに、Wordには無いのでしょうか?

  • フォームのテキストボックスの値が空白の時

    現在 フォームのテキストボックスに入れた値をレポートのテキストボックスに表現していますが 例えば フォームのテキストボックスの値 を1とした時 レポートの値 1月分 と表示しています フォームのテキストボックス値が空白の時にレポートの値も 空白にしたいのです 現在のままですと 月分 の文字だけが残ってしまいます 何方かご指南ください 使用環境は Windows10 Office2019です よろしくお願い致します

  • Word2007テキストボックスの空白

    Word2007テキストボックスの空白 宜しくお願いいたします 有る書類の数字の上に違う数字を入れるため(書類の文字の行が狭い) テキスト ボックスの空白部分を少なくしたい テキスト ボックスを選択右クリックで「テキストボックスの書式設定」を選択します テキストボックス タブで「上下左右」全てを0としてから 図の2番目のようにテキストボックス枠をドラグして数字の最短まで 移動します、そこで左、右、下、は良いですが上は0なのに数字の上最短まで 移動すると3番の様に数字が下におされてしまいますが上側も最短まで移動できるでしょうか。

  • windowsダイヤログボックス内のタブ

    windowsXPで、ダイヤログボックス内のタブを 常に固定させる事は出来ますか? 例えば、wordの「ページ設定」ダイヤログボックスを開くと、 初めに一番左端の「文字数と行数」タブが選択されています。 ここで、「用紙」タブが常に初めに選択されるようにしたいのです。 一度選択すれば、wordを終了するまでは「用紙」が選択されたままになりますが、 wordを終了するとまた元の「文字数と行数」に戻ってしまいます。 色々調べてみたのですが、分かりませんでした。 こういった事は出来ないのでしょうか。 もし出来るようなら、方法を教えて下さい。お願いします。

  • エクセル2000テキストボックス内文字上下位置を変えたいのですが

    エクセル2007のテキストボックス内文字を上下位置の「中央」に設定したデータを、エクセル2000で開くと文字の下が消えてしまいました。 恐らくエクセル2000では文字位置が「下」に設定されてしまうようです。 エクセル2000でテキストボックス内文字を上下関係の「中央」に設定したいのですが、設定場所を探しても見当たりません。どこに上下位置の設定があるのでしょうか。 よろしくお願いします。