Nur Zahlen in Combobox schreiben

GangXtaBoii

Grünschnabel
Hallo!

Ich habe folgendes Problem: Ich möchte in dieser Combobox NUR Zahlen eintippen können, falls sich der Benutzer dafür entscheidet etwas einzutippen. Jetzt habe ich schon folgenden Code verwendet - der aber leider nicht richtig funktioniert!!

Code:
        private void cbxPLZ_SelectedValueChanged(object sender, EventArgs e)
        {
            Regex regex = new Regex("([a-z])");
            Match match = regex.Match(cbxPLZ.Text.Substring(cbxPLZ.Text.Length-4, 4));

            if (!match.Success)
            {
                string plzOrt;
                string plz = cbxPLZ.Text;

                DataTable dt = ds.Tables["PLZ"];

                /* Auslesen */
                string[,] stringarray = new string[dt.Rows.Count, dt.Columns.Count];

                for (int i = 0; i < ds.Tables["PLZ"].Rows.Count; i++)
                {
                    foreach (DataRow therow in ds.Tables["PLZ"].Rows)
                    {
                        plzOrt = dt.Rows[i][col].ToString();
                        if (plzOrt == cbxPLZ.SelectedItem.ToString())
                        {
                            tbxOrt.Text = dt.Rows[i][col + 1].ToString();
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show(
                                "Es dürfen nur Zahlen eigegeben werden!",
                                "Ungültiges Zeichen!",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);

                cbxPLZ.Text = cbxPLZ.Text.Substring(0, cbxPLZ.Text.Length);
                cbxPLZ.SelectionStart = cbxPLZ.Text.Length;
                cbxPLZ.Focus();
            }
        }

Der Benutzer sollte max. 4 Zeichen eintippen können und dabei sollte es sich NUR um Zahlen handeln!!
 
Versuchs mal mit dem Event KeyPress. Habs nicht getestet aber denke das müsste gehen...

Code:
 void combobox_keypressed( Object^ o, KeyPressEventArgs^ e )
   {
      if ( e->KeyChar < (char) 48 ||  e->KeyChar >= (char) 57)
            e->Handled = true;
   }
 
Zuletzt bearbeitet:
Zurück