Winforms 将文本框格式化为货币

wic*_*one 5 c# formatting winforms

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

我查看了一个蒙面文本框,但这并不是我正在寻找的内容,因为它没有在小数点后放置美分。

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

TextBox.Text = DataSet.DataView[0].Amount.ToString("c");
Run Code Online (Sandbox Code Playgroud)

我有很多需要格式化的文本框,所以我想知道是否需要为每个文本框都这样做。有没有人有什么建议?

Ste*_*cya 5

您可以创建自己的从标准文本框派生的文本框

 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

   textbox.Format = "c";
   textbox.Datasource = DataSet.DataView[0].Amount;
Run Code Online (Sandbox Code Playgroud)

  • 我还发现可以在文本框的属性窗口中执行此操作,在“数据绑定”、“高级”下并选择“货币” (7认同)