2011-08-31 16 views
4

私はWinformsの開発に初めてで、ユーザーにテキストボックスでデータを表示するつもりです。私は表示されている値を書式化しようとしているので、テキストボックスは通貨であるデータでデータバインドされます。WinForms通貨テキストボックスのフォーマット

私はマスクされたテキストボックスを見ましたが、それは10進数の後にセントを置かないので、私が探しているものではありません。

このようなテキストボックスごとにコードを作成する必要がありますか?

TextBox.Text = DataSet.DataView[0].Amount.ToString("c"); 

私は、一つ一つのためにこれを行う必要がある場合、私は疑問に思ってフォーマットする必要があるテキストボックスの多くを持っています。誰にも何か提案はありますか?

答えて

3

あなたは、標準の1

public class TextBoxEx : TextBox 
{ 
    public string Format { get; set; } 

    private object datasource = new object(); 
    public object Datasource 
    { 
     get { return datasource; } 
     set 
     { 
      datasource = value; 
      if (datasource == null) 
       base.Text = string.Empty; 
      else if(string.IsNullOrWhiteSpace(Format)) 
       base.Text = datasource.ToString(); 
      else 
       base.Text = string.Format("{0:"+ Format + "}",datasource); 
     } 
    } 
} 

使用法に由来し、独自のテキストボックスを作成することができます:あなたは、このようなmySumInvestment二重変数から来る合計を持っていて、それ配置したいと想像

textbox.Format = "c"; 
    textbox.Datasource = DataSet.DataView[0].Amount; 
+0

だから、私はまだそれぞれのために、デザインモードでフォーム上のテキストボックスをドロップする代わりに、コードする必要がありますか? – wickedone

+0

このTextBoxExは、ビルド後にツールボックスに表示されます。そして、プロパティウィンドウでフォーマットを設定することができます。 – Stecya

+0

私はbase.Text = datasource.ToString(Format)の下に赤い波線を表示します。 ToStringにパラメータがありませんが、1つの引数で宣言されているというエラーが表示されます – wickedone

0

を米国通貨フォーマットのテキストボックス。次に、これはあなたができることです

textBox5.Text = mySumInvestment.ToString("c", CultureInfo.CreateSpecificCulture("en-US")); // In order to format as currency