在c#文本框中,光标在修剪后移动
本文关键字:修剪 移动 光标 文本 | 更新日期: 2023-09-27 18:17:03
我有一段代码,检查输入到文本框中的每个字符,如果它是一个数字,它弹出一个消息框,说"空白"不是数字。在此之后,它将光标重置到文本框的开始,我希望将光标放置在文本框当前文本的末尾。
string actualdata = string.Empty;
char[] entereddata = txfanrpm.Text.ToCharArray();
foreach (char aChar in entereddata.AsEnumerable())
{
if (Char.IsDigit(aChar))
{
actualdata = actualdata + aChar;
}
else
{
MessageBox.Show(aChar + " is not numeric");
actualdata.Replace(aChar, ' ');
actualdata.Trim();
}
}
将选择起始点设置为文本长度:
txfanrpm.SelectionStart = txfanrpm.TextLength;
注意:你不需要将文本转换为字符数组-字符串已经是IEnumerable<char>
foreach(char ch in txfanrpm.Text)
{
if (!Char.IsDigit(ch))
{
MessageBox.Show(ch + " is not numeric");
continue;
}
actualdata += ch;
}
另一种解决方案-两个循环,但更有效的字符串创建:
foreach(char ch in txtfanrpm.Where(c => !Char.IsDigit(c)))
MessageBox.Show(ch + " is not numeric");
string actualdata = new String(txtfanrpm.Text.Where(Char.IsDigit).ToArray());