2010-11-11 2 views
0

Выполнение проверки текстового поля, как показано ниже, предположим, что будет перезаписана запись в текстовом поле с недопустимым номером, после нажатия «ОК» я хочу, чтобы предыдущая действительная запись была перезаписана для отображения.восстановить предыдущую запись в текстовом поле C#

как я могу это сделать в C#?

private void cor_o_gain_Validating(object sender, CancelEventArgs e) 
{ 
    try 
    { 
     int entered = int.Parse(cor_o_gain.Text); 
     if (entered > 255) 
     { 
      e.Cancel = true; 
      MessageBox.Show("Enter the number between 0 and 255"); 
     } 
    } 
    catch (FormatException) 
    { 
     // e.Cancel = true; 
    } 
} 

ответ

4

Вы также можете просто позвонить Undo() метод (в случае, если вы говорите о Windows Forms TextBox)

+0

да ... это нормально ... в случае еще раз я ввожу недопустимый номер, он отображает предыдущий номер (что неверно!), я хочу, чтобы отображалась только последняя действительная запись. –

1

Для этого не существует встроенного способа по умолчанию. Вам просто нужно сохранить старое значение самостоятельно (в некоторой переменной), а затем восстановить его вручную.

1

Использование DataBinding и он будет делать это для вас, и это есть метод для разбора данных, который позволит вам выполнить вашу проверку

1

Почему вы не просто сохранить текущий текст, когда событие Validated встречается, так вы можете использовать его в следующий раз?

1

как сказал Codymanix

заменить e.Cancel = true; на cor_o_gain.Undo();

+0

да ... это нормально. В случае еще раз я вхожу в invali d, он отображает предыдущий номер (что недопустимо!), я хочу, чтобы отображалась только последняя действительная запись. –

+0

Какие значения вы пытаетесь использовать? –

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