[英]Formatting data in a textbox in C#
我在表单上有一个下拉菜单控件。 此下拉列表的结果需要写入一个隐藏的文本框,但是当将它们写入文本框时,其格式必须为“ XX.XX”。 因此,如果用户选择“ 1.0”,则需要将其作为“ 01.00”写入文本框。
我是本地Access / VBA程序员,在VBA中很容易做到。 我将如何在C#代码隐藏中执行此操作?
我现在所拥有的是:
protected void ddlCIT_SelectedIndexChanged(object sender, EventArgs e)
{
txtCIT.Text = ddlCIT.SelectedValue;
}
这是在我不知道此要求之前。因此它根本无法解决格式问题。 我敢肯定它一定是这样的:
txtCIT.Text = Format(ddlCIT.SelectedValue, "##.##");
之类的,但是我只是想不通。 我发现的所有示例都没有做任何需要做的事情。
编辑
按照asven的回答,我现在得到以下代码:
string ddlCITVal = ddlCIT.SelectedValue.ToString();
txtCIT.Text = string.Format("{0:#0.0#}", ddlCITVal);
string blearg = string.Format("{0:0.0#}", ddlCITVal);
当我从下拉列表中选择“ 2.0”时,我的文本框和字符串“ blearg”在立即窗口中都显示结果“ 2.0”。 我还尝试在format子句中使用“ {0:00.00}”,结果相同。
如果这很重要,我正在使用VS2012。
尝试
string.Format("{0:00.00}", ddlCIT.SelectedValue);
您可以更进一步,并使用自定义文本框。 这使您可以内置验证和格式设置:
public class NumDoubTextbox : TextBox
{
public override string Text
{
get
{
return base.Text;
}
set
{
double temp = 0;
if (double.TryParse(value, out temp))
//Formatting as a float then padding left with 0's should give the format you want
base.Text = temp.ToString("F2").PadLeft(5,'0');
else
//Handle invalid input here.
base.Text = "--.--";
}
}
}
您可以将其放在单独的项目中并进行编译,并将其包含在工具箱中,以便可以在设计时使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.