2013-05-26 2 views
2

Я создаю класс только для методов, поэтому я могу использовать их все время в моем проекте. На данный момент я пытаюсь сделать метод проверки текста, но у меня возникают некоторые проблемы.Проверка TextBox с помощью методов

Я использую это:

public bool ValidateIntTextBoxes(params TextBox[] textBox) 
{ 
    int value = 0; 

    return int.TryParse(textBox.ToString(), out value); 
} 

И я использую это так:

public bool IsValid() 
{ 
    return ValidateIntTextBoxes(AgeTextBox); 
} 

private void OKButton_Click(object sender, EventArgs e) 
{ 
    //This if statement is just to test the mothod 
    if(IsValid()) 
    { 
     MessageBox.Show("Success"); 
    } 

    else 
    { 
     AgeTextBox.BackColor = Color.Red; 
    } 

} 

Проблема заключается в том, метод IsValid() всегда возвращает ложь. Что я делаю не так ?

ответ

2

должно быть:

return int.TryParse(textBox[0].Text.Trim(), out value);. Кроме того, необходимо перебрать все textBox эс

public bool ValidateIntTextBoxes(params TextBox[] textBox) 
{ 
    bool valid = true; 
    int value; 
    foreach(var t in textBox){ 
    if((int.TryParse(t.Text.Trim(), out value) == false) { 
     return false; 
    } 
    } 
    return valid; 
} 
+0

Это работает отлично, как я хотел. Большое вам спасибо за ваше время. Cheers;) – Etrit

+0

добро пожаловать @ user2302998 –

2

Вы вводите коллекцию TextBox s, но не повторяете их. Кроме того, вы вызываете на нем ToString.

Обновить ваш ValidateIntTextBoxes так:

public bool ValidateIntTextBoxes(TextBox textBox) 
{ 
    int value = 0; 

    return int.TryParse(textBox.Text, out value); 
} 
+0

Хорошо, это работает отлично! Спасибо :). Но что, если я хочу проверять несколько текстовых полей за раз? Что мне тогда делать? – Etrit

+0

Другие ответчики на ваш вопрос, похоже, предвосхитили этот вопрос - проверьте их ответы (хотя, вероятно, подождите минуту или две - они яростно редактируют :)). – Gjeltema

+0

Да, я заметил ха-ха. Спасибо, за ваше время, приветствия! – Etrit

0

Чтобы проверить все текстовые поля

public bool ValidateIntTextBoxes(params TextBox[] textBox) 
{ 
    return textBox.All(t => { 
           int value = 0; 
           return int.TryParse(t.Text, out value); 
          }); 
} 
+0

Он все еще возвращает ложь все время. – Etrit

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