以下是我需要解决的问题:
我有一个掩码为00.0
的蒙面文本框,我需要能够在此框中输入值,范围从2到20.问题是,我需要输入值从右边开始,转移小数点而不是从右边输入。
例如,目前我可以输入160,它会给我正确的16.0
值...但是如果我输入80
,我会得到80
。而不是8.0
。我不希望用户必须输入前导零来获取值(080
)。有没有办法从右边输入文本并让它跨越小数点。这似乎应该很容易,但到目前为止还没有运气。
答案 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;
}