繁体   English   中英

在C#中的文本框中格式化数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM