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

3xp 2005-04-15 03:47:28
textBox中不填数据时显示[0.00],填入数据后,按小数点右对齐,没有小数位则自动补点[.]和两位小数[00],整数部分每三位有分节号[,].如何实现?
...全文
386 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qibo2002 2005-04-15
  • 打赏
  • 举报
回复
自己写函数阿,
在textBox 失去焦点时候。调用
晨星 2005-04-15
  • 打赏
  • 举报
回复
double d = ……;
textBox1.Text = d.ToString("#,##0.00");
晨星 2005-04-15
  • 打赏
  • 举报
回复
textBox1.Text = d.ToString("#,##0.00");
ffjing 2005-04-15
  • 打赏
  • 举报
回复
整数部分每三位有分节号[,],这个好像没办法Format出来,
重写一下TextBox吧
panda2fw2 2005-04-15
  • 打赏
  • 举报
回复
如果只是显示一下的话,用格式化字符串就可以了,像一楼的。

我的是用于绑定的textbox,可以显示为自定义的数据格式。开始以为你是绑定到textbox了。没看清。
panda2fw2 2005-04-15
  • 打赏
  • 举报
回复
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);
greatqn 2005-04-15
  • 打赏
  • 举报
回复
一点提示:
double d = 0;
textBox1.Text = d.ToString("0.00");

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧