将输入限制为仅文本框“;I-10”;或“;IV-12”;或“;III-7”;

本文关键字:III-7 I-10 IV-12 输入 文本 | 更新日期: 2023-09-27 18:00:04

所以,我有一个家庭作业,我需要帮助。我必须将我的文本框输入限制为班级编号。我们的类的格式是:"I-1"、"II-1"、"III-1"、"IV-1"、"I-10"、"IV-10"等等。所以我的代码是:

private void tbRazred_KeyPress(object sender, KeyPressEventArgs e)
{ //ogranicenje textbox-a da moze da upisuje razred u formatu npr. IV-1
    duzina = tbRazred.TextLength;
    if (brprivremeni < duzina)
    {
        brprivremeni = duzina;
        if (e.KeyChar.ToString() != "-")
            switch (brslova)
            {
                case 1:
                    {
                        e.Handled = e.KeyChar != 'I'; brslova++;
                        break;
                    }
                case 2:
                    {
                        e.Handled = e.KeyChar != 'I' && e.KeyChar != 'V'; brslova++;
                        break;
                    }
                case 3:
                    {
                        if (tbRazred.Text == "IV") e.Handled = e.KeyChar != '-'; brslova++;
                        break;
                    }
                case 4:
                    {
                        if (tbRazred.Text == "III") e.Handled = e.KeyChar != '-'; brslova++;
                        break;
                    }
            }
        else e.Handled = !char.IsDigit(e.KeyChar);
    }
}

duzina获取文本框长度btprivremi是一个临时值,用于获取文本框长度,并将其与新文本框长度进行比较,因此,如果其相同或更低,则不会执行任何操作。请帮帮我,我已经做了几天了,现在我必须问你。

将输入限制为仅文本框“;I-10”;或“;IV-12”;或“;III-7”;

有几种不同的方法可以做到这一点。由于您列出的潜在选项非常小,所以我会将所有的"类名"放在一个字符串列表中。然后,我会使用其他控件中的事件处理程序对照该列表检查文本框的文本。

Textbox tbRazred = new Textbox();
List<string> classNumbers = new List<string>();
// Add all your items, here is one of them
classNumbers.Add("I-1");
// Call the following based on some checker routine or Control. Maybe when the Textbox loses focus?
bool pass = false;
foreach (string thisClass in classNumbers)
{
    if (thisClass == tbRazred.Text)
    {
        pass = true;
    }
}