• 締切済み

String::Formatの右詰めの文字幅調整

現在、Visual C++のフォームアプリケーションを使用して、textBoxに座標ごとの3つの値を表示するプログラムを書いています。 例:(x,y)=(r,g,b) textBox1->AppendText(String::Format("({0,2},{1,2})=( {2,3},{3,3},{4,3} )\r\n",x,y,r,g,b)); ↑のようにxとyを右詰2ケタ、rとgとbを右詰3ケタでtextBoxに表示するようにしているのですが、 実際プログラムを実行すると以下のように幅がずれてしまいます。 ( 0, 0)=( 0,144, 49 ) ( 1, 0)=( 207,149,122 ) ( 2, 0)=( 89,229,210 ) ( 0, 1)=( 191, 44,219 ) ( 1, 1)=( 181,131, 77 ) ( 2, 1)=( 3, 23, 93 ) ( 0, 2)=( 37, 42,253 ) ( 1, 2)=( 114, 30, 1 ) ( 2, 2)=( 2, 96,136 ) この幅をきれいに合わせたいので、ぜひ回答をお願いします。

  • kitct
  • お礼率13% (7/53)

みんなの回答

回答No.1

textBox1 のフォントを「 MS ゴシック」や「 MS 明朝」などの固定ピッチフォントにすれば桁位置がそろうんじゃないでしょうか。

関連するQ&A

  • 印刷について

    はじめまして、履歴を探しましたがなかなかピンとくるものが見つからないので質問させていただきます。 visualbasic.net windowsXP For y = 0 To 2 Step 1 TextBox2.AppendText(Tyumon_suu(y) & ControlChars.Tab) next という文で順次配列の中身を表示させています。 そうすると 300  400   500 のように表示はされるのですが、printdocumentコントロールをつかって印刷を試みたところ 300400500 のようにtabが省略されて文字がつめられてしまいます。 ほかにも TextBox2.AppendText(format(Tyumon_suu(x, y), "###,##0")) というのもで#の余った部分が空白になればと思って、試してみたのですが、同じ結果になりました。 この場合どのように記述したらtabのように桁区切りができるのでしょうか?教えてください。

  • TextBoxに入力したカラーコード

    チェックボックスをクリックするとカラーパレットが出てきて色を選び「OK」を押すとテキストボックスの背景の色を変えてカラーコードを表示させるコードが下なんですが private void checkBox1_CheckedChanged(object sender, EventArgs e) {     ColorDialog colorDialog1 = new ColorDialog(); if (colorDialog1.ShowDialog() == DialogResult.OK) { Color ColorCode = colorDialog1.Color; textBox1.BackColor = ColorCode; textBox1.ForeColor = Color.FromArgb(0xFF - ColorCode.R, 0xFF - ColorCode.G,                                 0xFF - ColorCode.B); string strColor = "#" + ColorCode.R.ToString("X2") + // Red(赤) を16進数2桁表示 ColorCode.G.ToString("X2") + // Green(緑)を16進数2桁表示 ColorCode.B.ToString("X2"); // Blue(青) を16進数2桁表示 textBox1.Text = strColor; } } private Brush b5 = new SolidBrush(Color.ColorCode); とした場合「ColorCode」の定義がありませんと出ます。上のプログラムで選んだカラーコードをどうやれば(Color.ColorCode)に入れることができるのでしょうか? ご教授お願いします。

  • 円周上の穴あけについて ファナックプログラムです。

    初めての投稿をさせていただきます。 現在円周上の穴あけに対して 座標を打ち込む際は 例 PCDф100.0 3-ф5.0 G68X0Y0R0 X0Y-50.0 G68X0Y0R120.0 X0Y-50.0 G68X0Y0R240.0 X0Y-50.0 G69 上のプログラムみたいに作ってるのですが、 今回円周上に100か所の穴をあけるさいに 全てG68で3.6度ずつ回転させたプログラムを作ってもいいのですが、 これだと プログラムを凄く長くなってしまって困っております。 いろいろ調べてみたら、 OSP(オークマ)のプログラムでは 1行でそのプログラムを作ることも可能と聞いたのですが、 G300?を使ってか ファナックのプログラムでもできるのでしょうか 読みずらい文章ですが、よろしくお願いします

  • boost::formatの値をstring型にコピーしたい

    boost::formatの値をstring型にコピーしたいのですが、うまくいきません。boost自体初めてで以下のサイトからダウンロードし、展開後VS2005のVCのインクルードフォルダーにboostフォルダーをまるまるコピーしただけですが・・・ http://sourceforge.net/project/showfiles.php?group_id=7586 boost 1.34.1 #include <iostream> #include <boost/format.hpp> using namespace std; using boost::format; void main(){ double x = 1.234; string str("abc"); //cout << format("%10.3f, [%16s]") % x % str << endl; // サンプルはこうでした。 // いったんstring型に入れて表示させたい。 string y; y = boost::format("%10.3f, [%16s]") % x % str; // エラー箇所 std::cout << y << std::endl; }

  • 指摘してください!!!

    JAVA APPLETの初歩的な質問ですが… クリックするとマウスの座標を表示するプログラムなのですが、以下のプログラムでは正しく実行しないのだそうです。 正しく実行するにはいくつかのコードを削除しなければならないのですが…。 それはどのコードなのでしょうか? プログラムは以下の通りです。 import java.applet.*; import vava.awt.*; public class Test extends Applet{   int iX,iY;   public void paint(Graphics g){    int iX,iY;    string c = new String();    g.drawString("X座標 = "+c.valueOf(iX)+"Y座標 = "+ c.valueOf(iY),10,20); } public boolean mouseDown(Event e,int x,int Y){  int iX,iY;  iX = x;  iY = y;  repaint();  return true; } } 宜しくお願いします。

    • ベストアンサー
    • Java
  • 極座標表示

    ∫∫Cb exp{-(x^2+y^2)}dxdy Cb={(x,y)|x^2+y^2≦b,x≧0,y≧0} を極座標表示にすると ∫∫Gb exp(-r^2)rdrdθ Gb={(r,θ)|0≦r≦b,0≦θ≦π/2} となるのはなぜですか?

  • VC++ std::stringからLPCWSTRに変換

    Visual C++ 2008を使用してTextBoxからの値(System::String)をmciSendString(LPCWSTR)に渡したいと思っています。 そこで自分はSystem::Stringをstd::stringに変換しそれから渡そうと思っているのですが・・・ 『error C2664: 'mciSendStringW' : 1 番目の引数を 'std::string' から 'LPCWSTR' に変換できません。』 のようにエラーが出ます。 当然そのまま与えてるので出るのは当たり前なのですが、キャストや変換の仕方が分からず調べ様にも困っている次第です。 C++に今回始めての挑戦で、右も左も分からないのですが、もしよろしければご指南頂けませんでしょうか?

  • 関数の極限

    杉浦光夫「解析演習」42ページ~43ページの例題 2.17(3)です。 次の関数の R^2 における連続性を調べよ. f(x, y) = (x^2)y/(x^4 + y^2) ((x, y) ≠ 0 のとき) f(x, y) = 0 ((x, y) = 0 のとき) [解答]では (a, b) ≠ (0, 0) となるすべての点 (a, b) で f(x, y) が連続関数となることはすぐわかる. 原点 (a, b) = (0, 0) における連続性を調べるため, 極座標表示 x = rcosθ, y = rsinθ を利用する. すなわち, g(r) = f(rcosθ, rsinθ) とおき, r → +0 のとき, θ に関係なく g(r) → f(0, 0) = 0 となるかどうかを確かめればよい. g(r) = r(sinθ)(cos^2(θ))/((r^2)cos^4(θ) + sin^2(θ)) より, R^2 上連続である. とかかれています。 質問のひとつめは,「θ に関係なく」の意味です。 0 ≦ θ < 2π の範囲にある θ を任意にひとつ取って固定するという意味でしょうか。 それなら, r → +0 のとき g(r) → 0 となるのは納得できます。 質問のふたつめは, θ を固定した場合に r → +0 のとき g(r) → 0 になれば, (x, y) → 0 のとき f(x, y) → 0 がいえたことになるのでしょうか。 θ を固定すると近づけ方は限定され, (x, y) → 0 のとき f(x, y) → 0 がいえたことにならないと思います。

  • java 多次元配列

    二次元平面を二次元配列int g[20][40]と対応させて考える。 g[x][y] == 1なら座標(x,y)に点があり、g[x][y] == 0なら点はないとする時、y = 2*x+5 (0=<x=<20)のグラフを表示するプログラムを作成せよ。 (xを縦方向,yを横方向と考えよ) というプログラムと同様にして y = x*x-8*x+16 (0=<x=<20)のグラフを表示するプログラムを作れ。という問題がプログラミング初心者の私には難しすぎます。 方法を教えて頂けないでしょうか?

  • java 多次元配列

    二次元平面を二次元配列int g[20][40]と対応させて考える。 g[x][y] == 1なら座標(x,y)に点があり、g[x][y] == 0なら点はないとする時、y = 2*x+5 (0=<x=<20)のグラフを表示するプログラムを作成せよ。 (xを縦方向,yを横方向と考えよ。) というプログラムと同様にして y = x*x-8*x+16 (0=<x=<20)のグラフを表示するプログラムを作れ。という問題がプログラミング初心者の私には難しすぎます。 方法を教えて頂けないでしょうか?

専門家に質問してみよう