2014-04-14 5 views
0

У меня есть число вверх, которое имеет некоторое значение. Когда я меняю это значение с клавиатуры, после нажатия первого курсора курсор перемещается влево от введенного значения. Например, если я вхожу в «1», то курсор перемещается влево от «1» до «1».Курсор перемещается влево при вводе числа numdownupdown

Я сделал некоторый код по значению измененного события.

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); 
      } 
     } 

Как я могу решить эту проблему?

+1

http://msdn.microsoft.com/en-us/library/vstudio/system.windows.forms.control.righttoleft(v=vs.100).aspx, но ваша проблема, скорее всего, вы разрабатываете в правильном положении слева, и это поведение автоматически унаследовано вашим окном. Таким образом, ваше фактическое решение может быть более сложным, чем просто переключать поведение на элементе управления. – Will

+0

Я установил позицию RightToLeft = No; –

+0

«Я установил позицию RightToLeft = No;» ... это исправить? –

ответ

0

Я думаю, проблема в том, что когда вы обращаетесь к значению, текст оценивается, который по какой-то причине иногда корректирует текст, а затем курсор перемещается.

Возможно, попробуйте получить доступ к тексту, а не к значению. У меня была аналогичная проблема (в обработчике TextChanged), и вместо доступа numericUpDown1.Value, я делаю decimal.Parse(numericUpDown1.Text) и останавливает перемещение курсора.

Смежные вопросы