我有一个有一些价值的数字。当我从键盘更改此值时,单击第一个键光标后,从输入的值向左移动。例如,如果我输入“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);
}
}
我该如何解决这个问题?
答案 0 :(得分:0)
我认为问题在于,当您访问Value时,会对文本进行评估,由于某种原因,文本会调整文本,然后光标移动。
也许尝试访问Text,而不是Value。
我有一个类似的问题(虽然在TextChanged处理程序中)而不是访问numericUpDown1.Value,我做decimal.Parse(numericUpDown1.Text)
并且它停止移动光标。