在numericupdown中键入时,光标向左移动

本文关键字:光标 左移 移动 numericupdown | 更新日期: 2023-09-27 17:58:10

我有一个上下数字,它有一些值。当我在键盘上更改这个值时,点击第一个键后,光标从输入的值向左移动。例如,如果我输入"1",则光标从"1"向左移动,而不是向右移动到"1"。

我已经做了一些关于值更改事件的代码。

 private void txtpendingAmount_ValueChanged(object sender, EventArgs e)
        {
            try
            {
                string result = string.Empty;
                if (decimal.Parse(txtAmtDue.Text, NumberStyles.Currency | NumberStyles.Number) == 0)
                {
                    result = calculateAmount(decimal.Parse(txtamount.Text == "" ? "0" : txtamount.Text, NumberStyles.Currency | NumberStyles.Number), decimal.Parse(txtpendingAmount.Value.ToString() == "" ? "0" : txtpendingAmount.Value.ToString(), NumberStyles.Currency | NumberStyles.Number));
                }
                else
                {
                    result = calculateAmount(decimal.Parse(txtAmtDue.Text == "" ? "0" : txtAmtDue.Text, NumberStyles.Currency), decimal.Parse(txtpendingAmount.Value.ToString() == "" ? "0" : txtpendingAmount.Value.ToString("C"), NumberStyles.Currency));
                }
                if (result == "Invalid")
                {
                    txtRemAmt.Text = "0.00";
                }
                else
                {
                    txtRemAmt.Text = Convert.ToDecimal(result).ToString("C");
                }
            }
            catch (Exception ex)
            {
                CusException cex = new CusException(ex);
                cex.Show(MessageBoxIcon.Error);
            }
        }

我该如何解决这个问题?

在numericupdown中键入时,光标向左移动

我认为问题在于,当您访问Value时,会对文本进行评估,出于某种原因,这有时会调整文本,然后光标移动。

也许可以尝试访问文本,而不是值。我遇到了一个类似的问题(不过在TextChanged处理程序中),我没有访问numericUpDown1.Value,而是访问decimal.Parse(numericUpDown1.Text),它停止了移动光标。