如何在RichEditControl中获取最后输入的单词 这是我的代码
private void richEditControl1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ' ')
{
int wordEndPosition = richEditControl1.Document.CaretPosition.ToInt();
int currentPosition = wordEndPosition;
while (currentPosition > 0 && richEditControl1.Text[currentPosition - 1] != ' ')
{
currentPosition--;
}
string word = richEditControl1.Text.Substring(currentPosition, wordEndPosition - currentPosition);
this.Text = "Last char typed: " + word;
}
}
但是当我按 Enter 创建新行时,就错了。
答案 0 :(得分:0)
我想你想知道它是否被空格或新线包围,只要它是最后一个?也许您应该在While循环中包含New Line检查,因此它不会仅检查空格。
richEditControl1.Text[currentPosition - 1] != "\n"
或类似的东西。不确定“\ n”是否会通过,因为我在一段时间内没有使用这些示例。它可能只是不知道该做什么新线。
答案 1 :(得分:0)
尝试:
public Form1()
{
InitializeComponent();
richEditControl1.KeyUp +=richEditControl1_Key;
}
private void richEditControl1_Key(object sender, KeyEventArgs e)
{
var currentText = richEditControl1.Text.Replace("\n", "");
currentText = richEditControl1.Text.Replace("\r", " ");
String result = currentText.Trim().Split(' ').LastOrDefault().Trim();
Console.WriteLine(String.Format("{0}| {1}", DateTime.Now.ToLongTimeString(), result));
}