我正在尝试限制文本框中某个字符(在我的例子中是逗号(,))的数量。我希望它只允许文本框中最多9个逗号。如果用户尝试添加超过9的逗号,则应显示带有错误的消息框,然后也不允许用户在文本框中输入更多内容。
在我的应用程序中,我允许用户将10个标签添加到以逗号分隔的文本框中。
用户输入的示例可能如下所示:summer,sexy,hot,beautiful,girls,guys,food,music,funny,lol
这是文本框中允许的标记的最大限制(9个逗号)。 当他们达到这个限制时,它应该阻止他们输入任何逗号。我希望我很清楚。
到目前为止,这是我的代码。我的文本框叫做tagBox。
private void tagBox_TextChanged(object sender, EventArgs e)
{
// Allow max 10 tags in the tag box
string tags = tagBox.Text;
int count = tags.Split(',').Length - 1;
if (count > 9)
{
MessageBox.Show("Max 10 tags are allowed.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
我只设法让消息框出现。但是如何阻止他们输入更多逗号?
答案 0 :(得分:0)
看起来应该是这样的:
private void tagBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
// Allow max 10 tags in the tag box
string tags = tagBox.Text;
int count = tags.Split(',').Length - 1;
if (count > 9 && e.KeyChar == ',')
{
e.Handled = true;
MessageBox.Show("Max 10 tags are allowed.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
e.Handled = false;
}
答案 1 :(得分:0)
我认为你应该做这样的事情
Public class TagTextBox : TextBox
{
Public override OnKeyDown(object sender, KeyEventArgs args)
{
// Do logic here
// Call this to accept Key
base.OnKeyDown(sender, args);
}
}