1

在我的 c# 程序中,我有一个非常简单的 DevExpress 编辑框,它表示一个数值。

在此处输入图像描述

我想做的是以这样的方式添加对小数位数的限制:

  • 用户不能键入、粘贴或以任何其他方式输入包含多于预定义小数位数的值。事实上,我只想编辑框在输入 3 位小数后立即忽略用户的输入。
  • 如果程序员设置了编辑框的文本,则该值将被四舍五入以使其符合要求。

做这个的最好方式是什么?

Ps.:我认为这会解决我的问题:

valueTextEdit.Properties.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
valueTextEdit.Properties.DisplayFormat.FormatString = "#.000;[#.000];0.000";

但它似乎没有做任何事情。我仍然可以输入 10 位小数的值。同样在代码中,我可以将编辑框文本设置为具有更多小数的值。

4

3 回答 3

4

您需要设置UseMaskAsDisplayFormat = true

看看这里这里

编辑:

很好的例子在这里

于 2011-09-08T14:13:15.120 回答
0

试试这个.Net的MaskTextBox控件

您可以使用 MaskedTextBox 在文本框中输入数字格式的数据。

我希望这能帮到您

谢谢你

于 2011-09-08T13:18:09.230 回答
0

您可以构建自己的从 派生(继承)的类TextBox,然后覆盖属性Text以添加您的要求:

internal class SmartTextBox : TextBox
{
    public SmartTextBox()
    {
    }

    public override string Text
    {
        get
        {
            return base.Text;
        }
        set
        {
            // validate 'value' before setting it
            base.Text = value;
        }
    }
}

构建项目后,您会发现新Control调用SmartTextBox的 .NET 控件。

编辑:但是,如果您TextBox仅用于数字输入,为什么不使用NumericUpDownControl?更好的是,用户不能输入字符,甚至可以设置十进制数的精度。

于 2011-09-08T14:00:04.703 回答