将输入限制为仅文本框“;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是一个临时值,用于获取文本框长度,并将其与新文本框长度进行比较,因此,如果其相同或更低,则不会执行任何操作。请帮帮我,我已经做了几天了,现在我必须问你。
有几种不同的方法可以做到这一点。由于您列出的潜在选项非常小,所以我会将所有的"类名"放在一个字符串列表中。然后,我会使用其他控件中的事件处理程序对照该列表检查文本框的文本。
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;
}
}