【问题标题】:Extract text from caret position textarea从插入符号位置 textarea 中提取文本
【发布时间】:2012-06-06 08:53:44
【问题描述】:

我无法使用 WPF 代码从 textarea 中提取文本。

示例: 伦敦晴天

如果光标设置在 [d*ay] 上,它应该返回 day。 * 为光标。

任何帮助将不胜感激。

【问题讨论】:

  • 重写你的例子。 * 是插入符号的位置吗?如果插入符号在那个位置,你想准确返回什么字符串,“day”?
  • 正是我想回来 [day]

标签: wpf textarea extract caret


【解决方案1】:

这似乎可行,但我不确定当插入符号位于空格中间时您希望它如何表现。照原样,它基本上返回接触插入符号的最近标记。例如,短语“Sunny day in London”有四个标记:“Sunny”、“day”、“in”和“London”。

string selection;

if (txtBox.Text.Length > 0)
{
    int startIndex = 0;

    for (int i = txtBox.CaretIndex - 1; i >= 0; i--)
    {
        if (String.IsNullOrWhiteSpace(txtBox.Text[i].ToString()))
        {
            startIndex = i;
            break;
        }
    }

    int length = txtBox.Text.Length - startIndex;

    for (int i = startIndex; startIndex + i <= txtBox.Text.Length - 1; i++)
    {
        if (String.IsNullOrWhiteSpace(txtBox.Text[startIndex + i].ToString()))
        {
            length = i;
            break;
        }
    }

    selection = txtBox.Text.Substring(startIndex, length);
}
else
{
    selection = "";
}

【讨论】:

  • 感谢您的快速回答,我想我忘了提到我正在使用 WPF 处理 RichTextBox,您的解决方案似乎适用于文本框。
猜你喜欢
  • 2015-08-26
  • 2013-05-08
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 2020-09-10
相关资源
最近更新 更多