/ / Textbox z określonymi numerami [closed] - c #, winforms

Pole tekstowe z określonymi liczbami [closed] - c #, winforms

Chcę stworzyć TextBox w aplikacji Windows Form w visual studio, która zawiera tylko określone liczby. na przykład chcę, aby jeden textbox był w stanie zawierać tylko liczby pomiędzy 0 i 1. Jeśli ma jakąkolwiek inną wartość, chcę, aby pojawił się komunikat z nieprawidłową liczbą. Aplikacja jest napisana w języku C #.

Widziałem ten przykład C # Numeric Only TextBox Control ale jest to numeryczne i chcę określonej liczby.

Edycja: Mój błąd nie był wystarczająco jasny. Próbowałem numericUpDown, ale nie działa dla wszystkich przykładów.W drugim polu chcę mieć wartości od 20 do 340, ale tylko .5 zmiennoprzecinkowe między (20,20.5,21 itp.) i jeśli używam NumericUpDown, jeśli użytkownik wstawia 22.6, komórka go akceptuje i nie chcę tego. Właśnie dlatego pytam, czy możliwe jest kontrolowanie wartości wstawionej za pomocą Textbox lub MaskedTextBox i jeśli jest to odpowiednie, aby użytkownik mógł wprowadzić to pole. Mam nadzieję, że teraz jestem wystarczająco jasny.

Odpowiedzi:

2 dla odpowiedzi № 1

Powinieneś użyć a NumericUpDown.

Możesz go użyć w ten sposób;

NumericUpDown control = new NumericUpDown();
control.Minimum = 0;
control.Maximum = 1;
control.DecimalPlaces = 2; // or something you want.
control.Increment = .01;   // step is .01

0 dla odpowiedzi nr 2

utwórz kontrolę użytkownika dziedzicząc TextBox i dodaj wydarzenie dla KeyPress w następujący sposób

public class MyTextBox:TextBox
{
List<int> numberstobeallowed = Enumerable.Range(20, 340 - 20).ToList();
public MyTextBox()
{
this.Leave += new EventHandler(MyTextBox_Leave);
}

void MyTextBox_Leave(object sender, EventArgs e)
{
if (numberstobeallowed.Contains(Convert.ToInt32(this.Text)))
this.Text = string.Empty;
}
}

mam nadzieję że to pomoże