Winform RichTextBox获取使用c#输入的最后一个字符
本文关键字:输入 最后一个 字符 RichTextBox 获取 Winform | 更新日期: 2023-09-27 18:26:50
我使用以下代码提取最后一个字符(刚刚键入的字符),使用以下代码
private string GetTypedChar()
{
string currentChar = "";
int i = rtfText.SelectionStart;
if (i > 0)
{
currentChar = rtfText.Text.Substring(i-1, 1);
MessageBox.Show(i+":"+currentChar);
}
return currentChar;
}
但这给了我错误的结果。如果输入的单词是"RS",则按R后消息框显示1:(空白),然后键入S时消息框显示2:R如何做到这一点?
获取最后一个输入的字符。您可以处理按键事件
private void richTextBox1_KeyUp(object sender, KeyEventArgs e)
{
char last = (char)e.KeyValue;
}
您可以获得富文本框的最后一个字符
string lastCharacter = rtfText.Text.SubString(rtfText.Text.Length - 1,1);
或
char last = rtfText.Text[rtfText.Text.Length - 1];
或
重要的问题是何时执行该代码。听起来你订阅了"KeyDown"活动。当引发此事件时,表单-->尚未处理关键笔划,因此您看不到更改。您可以使用KeyUp
事件。当它被触发时,控件的上下文发生了变化。
然而,如果新角色不是最后一个,这对你没有帮助。用户可以更改教程的位置并键入字符。然后这个新字符就在文本中间的某个地方。这可以通过实际检查按下了哪个键来解决。此信息位于KeyEventArgs
参数中。
您可以完全消除GetTypedChar()
并订阅KeyPress
事件。
请注意,如果您需要这些信息,这不会提供角色的位置。
private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
MessageBox.Show(string.Format("Last char typed: {0}", e.KeyChar));
}