在屏蔽文本框中从右到左输入带小数点的数字

时间:2014-04-16 18:45:34

标签: c# winforms maskedtextbox

以下是我需要解决的问题:

我有一个掩码为00.0的蒙面文本框,我需要能够在此框中输入值,范围从2到20.问题是,我需要输入值从右边开始,转移小数点而不是从右边输入。

例如,目前我可以输入160,它会给我正确的16.0值...但是如果我输入80,我会得到80。而不是8.0。我不希望用户必须输入前导零来获取值(080)。有没有办法从右边输入文本并让它跨越小数点。这似乎应该很容易,但到目前为止还没有运气。

2 个答案:

答案 0 :(得分:0)

我认为没有本地方法可以做到这一点。您最好的选择是在文本框的TextChanged(或其他)操作上实现事件处理程序,并在此处进行一些修改。

答案 1 :(得分:0)

试试这段代码:

    private void textBox1_TextChanged(object sender, EventArgs e) 
{
    var _value = textBox1.Text.Trim();

    if ((textBox1.Text.Length <= 2)) {
        _value = textBox1.Text.PadLeft(3, "0", c);
    }

    var _changed = _value.Replace(c, "");

    string _split1 = _changed.Substring(0, (_changed.Length - 2));
    string _split2 = _changed.Substring(_split1.Length, 2);
    _value = Convert.ToDecimal(string.Format("{0}.{1}", _split1, _split2)).ToString();
    textBox1.Text = _value;
}