2017-02-17 39 views
-1

У меня есть приложение для окон. Основываясь на возрасте пользователей (ввод), я хочу выделить одну из следующих надписей «child, preteen, teen, adult» на основе того, что они вводят для достижения возраста. В настоящее время у меня есть текстовое поле для возраста, которое добавляет возраст пользователей к ярлыку далее по форме.Как изменить цвет forecolor и backcolor метки на основе ввода в текстовое поле

Вот что я использую: txtAge lblChild (< 12) lblPreTeen (13 до 15) lblTeen (16 до 18) lblAdult (18>) btnSubmit

Спасибо. Я новичок в кодировании и все еще понимаю основы.

ответ

2

Я бы порекомендовал изменить ваш TextBox на NumericUpDown (называемый numAge), если это возможно. Перейдите в свойства NumericUpDown в редакторе формы и нажмите кнопку «События» (молния). Если вы дважды щелкните параметр ValueChanged, она будет создавать заглушки для следующего метода:

private void numAge_ValueChanged(object sender, EventArgs e) 
    { 
     if (numAge.Value > 0 && numAge.Value < 13) 
     { 
      // Child 
      // Highlight label 
     } 
     else if (numAge.Value > 12 && numAge.Value < 16) 
     { 
      // Pre-Teen 
      // Highlight label 
     } 
     else if (numAge.Value > 15 && numAge.Value < 19) 
     { 
      // Teen 
      // Highlight label 
     } 
     else if (numAge.Value > 18) 
     { 
      // Adult 
      // Highlight label 
     } 
     else 
     { 
      // Clear the highlights 
     } 
    } 

Если вы должны использовать TextBox, используйте метод TextChanged. Таким образом, вам не нужна кнопка «Отправить»:

private void txtAge_TextChanged(object sender, EventArgs e) 
    { 
     int txtAgeValue = 0; 
     if (!string.IsNullOrWhiteSpace(txtAge.Text)) 
     { 
      txtAgeValue = int.Parse(txtAge.Text); 
     } 
     if (txtAgeValue > 0 && txtAgeValue < 13) 
     { 
      // Child 
      // Highlight label 
     } 
     else if (txtAgeValue > 12 && txtAgeValue < 16) 
     { 
      // Pre-Teen 
      // Highlight label 
     } 
     else if (txtAgeValue > 15 && txtAgeValue < 19) 
     { 
      // Teen 
      // Highlight label 
     } 
     else if (numAge.Value > 18) 
     { 
      // Adult 
      // Highlight label 
     } 
     else 
     { 
      // Clear the highlights 
     } 
    } 
0

В текстовом поле введите событие, в котором вы можете обновить соответствующие цвета ярлыков несколькими операторами if.