WinForms - jak dodać walidację w textbox na typ

0

Mam model, który ma property typu int:

 
public class MyModel
{
public int MyProperty {get; set;}
}

na formie mam textbox, do którego zbindowane jest to property.
Chciałbym (bez dodawania atrubutów typu DataAnnotations) mieć walidację, która sprawdzi że jeśli w textboxie są literki, a property jest int to jest coś nie tak i najlepiej ErrorProviderem to pokazać.

Da się to jakoś z automatu zrobić?

0

Można np tak:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
    {
        e.Handled = true;
    }
}

Ale to nie jest rozwiązanie takie jakie oczekuje auto postu.
To rozwiązanie uniemożliwia wpisanie innego znaku niż liczba do pola tekstowego.

Aby było tak jak oczekuje autor można zrobić tak:

public int MojInt {get; set;}

private void Form1_Load(object sender, EventArgs e)
{
    textBox1.DataBindings.Add("Text", this, "MojInt");
}
0
Aldonix napisał(a):

Aby było tak jak oczekuje autor można zrobić tak:

public int MojInt {get; set;}

private void Form1_Load(object sender, EventArgs e)
{
    textBox1.DataBindings.Add("Text", this, "MojInt");
}

No własnie tak mam zrobione i efekt jest taki że leci exception.
A ja chcę by nie leciał tylko żeby walidacja powiedziała CO jest nie tak i z czym.
Nawet obsługując exception nie mam tych informacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1