dポイントプレゼントキャンペーン実施中!

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

A 回答 (4件)

フォントの文字サイズからPixelサイズを得る


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

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

お礼日時:2006/07/14 09:13

#2>不思議なことにSelectionTabsの内容が初期状態ではゼロになっているのです。

???
ほんとですね!
マニュアルを読んで取得できるとあったので、それでうまくいくとおもっていました。
その後、MeasureStringを使ってフォントの文字サイズからPixelサイズを得るとか色々試してみましたが、
どういうわけかうまくいかなかったです。

検索してみたところ
WinAPIでのサンプルを見つけました
http://blog.mag2.com/m/log/0000104516/106832576. …
試してみたところでは、こちらはうまくいきました。
.NET でWinAPI を使うのはなんだかなぁって感じですが・orz
    • good
    • 0

#1>タブ位置をピクセル数で設定するようになっているので使いにくいですね。


そうですね。
でも、
>タブ位置が8文字分になっているのを4文字
という状況であれば、
現在の状態を取得すれば、8文字タブになっているわけで、
4文字タブにするには、半分に
任意にするには、n/8にすればいいような気がします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/12 15:52

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/11 09:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!