我已经在Windows Form C#程序中实现了一些代码,问题是我想在TextChangeEvent
中使用以下代码,而不是Validating
事件,但需要使用.Focus()
和.Select()
方法不起作用。
对此有什么解决方案?
private void jTextBox5_TextChangeEvent(object sender, EventArgs e)
{
if (jTextBox5.TextValue != "John")
{
jTextBox5.Focus();
}
}
答案 0 :(得分:0)
您可以尝试:
private void jTextBox5_TextChangeEvent(object sender, EventArgs e)
{
if (jTextBox5.Text.ToUpper().Trim() != "JOHN")
{
((Textbox)sender).Focus();
}
答案 1 :(得分:0)
如果您试图强制用户只能在文本框中键入单词“ John”,并且希望在每次按键时都对此进行验证,则可以执行类似以下代码的操作,该代码检查当前文本,一次一个字符,然后将每个字符与其对应的单词“ John”进行比较。
如果一个字符不匹配,那么我们将文本设置为匹配匹配的字符的子字符串,以便他们可以继续输入:
private void jTextBox5_TextChanged(object sender, EventArgs e)
{
var requiredText = "John";
// Don't allow user to type (or paste) extra characters after correct word
if (jTextBox5.Text.StartsWith(requiredText))
{
jTextBox5.Text = requiredText;
}
else
{
// Compare each character to our text, and trim the text to only the correct entries
for (var i = 0; i < jTextBox5.TextLength; i++)
{
if (jTextBox5.Text[i] != requiredText[i])
{
jTextBox5.Text = jTextBox5.Text.Substring(0, i);
break;
}
}
}
// Set the selection to the end of the text so they can keep typing
jTextBox5.SelectionStart = jTextBox5.TextLength;
}