ustalenie zakresu podawanych liczb do textboxa

ustalenie zakresu podawanych liczb do textboxa
ST
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 9 lat
  • Postów:38
0

Czy jest mozliwosc ustawienia zakresu liczb wprowadzanych do texboxa ?
Np. by mozna bylo wprowadzic tylko liczby od 0 do 5 ?

SO
  • Rejestracja:ponad 10 lat
  • Ostatnio:około rok
0

Tak.

Najprościej chyba zrobić walidację w zdarzeniu TextChanged.

ST
a jak mam 100 kontrolek to dla kazdej oddzielnie ?
ST
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 9 lat
  • Postów:38
0

a jak mam 100 kontrolek to dla kazdej oddzielnie ?

MI
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 9 lat
1

To wtedy piszesz swoją dziedzicząc po textboxie i tam implementujesz walidację.

NE
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 8 lat
  • Postów:186
0

Pod każdą kontrolkę trzeba podpiąć metodę, ale jedna metoda wystarczy. Parametrem jest sender, czyli kontrolka, której zdarzenie dotyczy, więc można z niej wyciągnąć aktualny tekst.


(konto nieaktywne)
wojas666
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Łuków
  • Postów:177
0
Kopiuj
        TextBox[] textBoxArray;
        int PositionY = 0;
        private void Form_Load(object sender, EventArgs e)
        {
            textBoxArray = new TextBox[textBoxCount];

            for (int i = 0; i < textBoxCount; i++)
            {
                textBoxArray[i] = new TextBox();

                textBoxArray[i].TextChanged += Form1_TextChanged;
                textBoxArray[i].Top = PositionY;

                Controls.Add(textBoxArray[i]);
                PositionY += PositionY + textBoxArray[i].Height;
            }
            
        }
Kopiuj
        private void Form_TextChanged(object sender, EventArgs e)
        {
            int minNum = 0;
            int maxNum = 5;

            int result;

            if (int.TryParse(((TextBox)sender).Text, out result))
            {
                if (result >= minNum && result <= maxNum)
                    ((TextBox)sender).Text = result.ToString();
                else
                    ((TextBox)sender).Text = "0";
            }
            else if(((TextBox)sender).Text != string.Empty)
            {
                ((TextBox)sender).Text = "0";   
            }
        }

Powinno hasać.


Przyjmę zlecenia / projekty do wykonania w c#. Zainteresowanych zapraszam do konwersacji na PW.
edytowany 2x, ostatnio: wojas666
katelx
  • Rejestracja:około 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Hong Kong
2

po co cudowac z text boxami skoro dobry wujek microsoft na takie okazje przygotowal dedykowana kontrolke NumericUpDown?
https://msdn.microsoft.com/en-us/library/system.windows.forms.numericupdown(v=vs.110).aspx

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.