2011-08-31 46 views
4

我是Winforms開發新手,我將在文本框中向用戶顯示數據。該文本框將數據綁定與貨幣數據,所以我想格式化正在顯示的值。Winforms格式文本框到貨幣

我看了一個蒙面文本框,但那不是我正在尋找的東西,因爲它不會在小數點後面放仙。

我是否需要爲每個類似於此的文本框編碼?

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

我有很多需要格式化的文本框,所以我想知道是否需要爲每一個做這個。有沒有人有什麼建議?

回答

3

您可以創建自己的文本框從標準的一個

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); 
     } 
    } 
} 

使用情況中得到:

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

所以我仍然必須爲每一個代碼,而不是在設計模式下的窗體上放置一個文本框? – wickedone

+0

沒有。這個TextBoxEx將在您構建它之後出現在工具箱中。然後你可以在屬性窗口中設置格式 – Stecya

+0

我在base.Text = datasource.ToString(Format)下面得到紅色的波浪線。用ToString沒有參數但用一個參數 – wickedone

0

假設你有從雙變量如mySumInvestment總來了,你要放置一個美國貨幣格式的文本框。那麼這是你可以做的事

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