textBox中不填数据时显示[0.00],填入数据后,按小数点右对齐,没有小数位则自动补点[.]和两位小数[00],整数部分每三位有分节号[,].如何实现?

解决方案 »

  1.   

    一点提示:
    double d = 0;
    textBox1.Text = d.ToString("0.00");
      

  2.   

    using System;
    using System.Windows.Forms;namespace Test
    {
    /// <summary>
    /// DataBinding 的摘要说明。
    /// </summary>
    public class DataBinding : Binding
    {
    #region 自定义变量
    string formatString = "F";
    #endregion #region 构造函数
    public DataBinding(string propertyName,object dataSource,string dataMember) : base(propertyName,dataSource,dataMember)
    {
    }
    #endregion #region 属性
    public string FormatString
    {
    set
    {
    formatString = value;
    }
    }
    #endregion #region 虚函数覆写
    protected override void OnFormat(ConvertEventArgs cevent)
    {
    base.OnFormat (cevent); double d = Convert.ToDouble(cevent.Value);
    if(d == 0.0)
    cevent.Value = "";
    else
    cevent.Value = d.ToString("F");
    } protected override void OnParse(ConvertEventArgs cevent)
    {
    if(cevent.Value.ToString() == "")
    cevent.Value = "0.0"; base.OnParse (cevent);
    }
    #endregion
    }
    }
    这个是继承的binding,你可以在OnFormat和OnParse里做自己的修改。
    OnFormat是把数据显示到textbox上时的事件,OnParse是把textbox上数据写回绑定的事件。绑定:DataBinding binding = new DataBinding(propertyName,datasource,dataMember);
    textBox.Databindings.add(binding);
      

  3.   

    如果只是显示一下的话,用格式化字符串就可以了,像一楼的。我的是用于绑定的textbox,可以显示为自定义的数据格式。开始以为你是绑定到textbox了。没看清。
      

  4.   

    整数部分每三位有分节号[,],这个好像没办法Format出来,
    重写一下TextBox吧
      

  5.   

    textBox1.Text = d.ToString("#,##0.00");
      

  6.   

    double d = ……;
    textBox1.Text = d.ToString("#,##0.00");
      

  7.   

    自己写函数阿,
    在textBox 失去焦点时候。调用