Winforms将TextBox格式化为货币

时间:2011-08-31 14:34:20

标签: c# winforms formatting

我是Winforms开发的新手,我将在文本框中向用户显示数据。文本框将使用货币数据进行数据绑定,因此我尝试格式化正在显示的值。

我看了一个蒙面文本框,但这并不是我想要的,因为它没有把小数点后的分数。

我是否需要为每个与此类似的文本框编码?

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

我有很多需要格式化的文本框,所以我想知道是否需要为每个文本框执行此操作。有没有人有任何建议?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

想象一下,您有来自mySumInvestment等双变量的总数,并且您希望将其置于具有美国货币格式的文本框中。那么这就是你可以做的事情

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