我需要从winforms中的文本框中获取文本,我需要获取光标所在的文本,例如

您好,请假或看看

这应该返回单词position (注意这里我用管道作为光标)

你知道我可以使用的任何技术吗?

===============>>#1 票数:3 已采纳

我测试了这个真正的快速,似乎它的工作一致

Private Function GetCurrentWord(ByRef txtbox As TextBox) As String
    Dim CurrentPos As Integer = txtbox.SelectionStart
    Dim StartPos As Integer = CurrentPos
    Dim EndPos As Integer = txtbox.Text.ToString.IndexOf(" ", StartPos)

    If EndPos < 0 Then
        EndPos = txtbox.Text.Length
    End If

    If StartPos = txtbox.Text.Length Then
        Return ""
    End If

    StartPos = txtbox.Text.LastIndexOf(" ", CurrentPos)
    If StartPos < 0 Then
        StartPos = 0
    End If

    Return txtbox.Text.Substring(StartPos, EndPos - StartPos).Trim
End Function

===============>>#2 票数:3

感谢所有试图帮助的人,

我有一个更好,更简单的方法,没有循环

Dim intCursor As Integer = txtInput.SelectionStart
Dim intStart As Int32 = CInt(IIf(intCursor - 1 < 0, 0, intCursor - 1))
Dim intStop As Int32 = intCursor
intStop = txtInput.Text.IndexOf(" ", intCursor)
intStart = txtInput.Text.LastIndexOf(" ", intCursor)
If intStop < 0 Then
 intStop = txtInput.Text.Length
End If
If intStart < 0 Then
  intStart = 0
End If
debug.print( txtInput.Text.Substring(intStart, intStop - intStart).Trim)

谢谢大家

===============>>#3 票数:2

尝试这样的事情:

private void textBox1_MouseHover(object sender, EventArgs e)
{
    Point toScreen = textBox1.PointToClient(new Point(Control.MousePosition.X + textBox1.Location.X, Control.MousePosition.Y + textBox1.Location.Y));

    textBox1.SelectionStart = toScreen.X - textBox1.Location.X;
    textBox1.SelectionLength = 5; //some random number

    MessageBox.Show(textBox1.SelectedText + Environment.NewLine +  textBox1.SelectionStart.ToString());
}

它以某种方式对我有用,但也取决于你的文本框是对表单本身的附加控件。 如果它在面板内或代码应该更改。

编辑似乎我误解了你的问题,我虽然你需要在鼠标移过它时选择文字! 抱歉! 我相信你只能使用RichTextBox完成这项任务,你可以在其中获得插入符号的位置!

  ask by Smith translate from so

未解决问题?本站智能推荐:

5回复

C#| 如何通过光标位置在文本框中选择单词?

在Windows窗体中,使用C#,如何根据光标位置选择(例如,实际上突出显示文本,使.SelectedText属性可以访问)一个单词? 这就是我想要做的。 我有一个文本框,用户当前可以通过突出显示选择一个单词。 然后他们可以对该单词执行各种操作,但是我想使其更简单。 我希望这样做
2回复

在多行文本框中,我的光标会自动转到下一行

我正在使用winForms制作Messenger应用程序。 因此,当我在发件人的文本框中键入一条消息并按Enter键时,该消息将被传递,但我的文本框上的光标将自动自动转到下一行。 然后它将停留在我输入和发送的所有消息中。 我正在为输入按钮使用一个简单的按键事件,该事件使用return。
2回复

获取文本框中的当前光标位置

我需要一个代码来找到textbox / textarea中光标的当前位置 。 它应该适用于chrome和firefox。 以下是我正在使用的代码: 有什么建议吗?
2回复

WebBrowser文本选择更改时的触发事件

我的程序的两个部分是winforms WebBrowser和一个简单的TextBox 。 我现在想要的是,当我在WebBrowser选择一个文本时,它会自动复制TextBox的所选文本。 我在谷歌上找不到任何关于此的内容,所以如果有人能帮助我,我会很高兴!
1回复

数据绑定后TextBox光标位置始终为0

我有以下简单命令: 该命令成功执行,我可以在文本框中看到标题,但是一旦我在textbox1上单击了光标的位置,它便始终移至位置0而不是我单击的文本框的区域。 例如,我的文本框包含以下文本: "Hello World" 。 如果在文本框内的字母W或任何我单击的地方单击鼠标,光标将移至0
2回复

如何从文本框中删除等待的光标?

每当我用文本框加载Windows窗体时,我都会在第一个文本框中等待光标闪烁,但是当我单击该文本框时我等待闪烁。 文本框代码如下所示: 谁能告诉我我如何做到这一点?
1回复

在文本框中的光标上方显示工具提示

我正在Winforms(.NET Framework 4.7.2)中的项目上工作,并希望在文本框控件中的光标上方显示气泡工具提示。 这是我目前拥有的: 这就是我想要的: 我已经尝试了SetToolTip()和Tooltip.Show()方法,但是无法使工具提示显示在文本
1回复

TextBox在KeyUp或KeyDown之后设置光标

我有一个列表,其中包含我的TextBox的先前条目。 通过使用KeyUp / KeyDown,我可以滚动显示TextBox中文本的列表。 在TextBox中设置另一个字符串,edit-cursor应该位于Te 强调文本 xtBox中字符串的末尾。 myTextBox.Select(RT
3回复

如何根据鼠标位置从文本框中获取特定文本值

我有一个多行文本框,根据给出的数据显示一些值(通常每行一个值)。 (为了有一个带有一些'替代'数据的工具提示弹出窗口)我想得到鼠标悬停在上面的单词(或至少是这一行),这样我就可以找到显示的替代方法。 我有一些关于如何通过基于文本框和字体大小的计算来做到这一点的想法,但我不知道要走这条
1回复

如何在Windows窗体C#中隐藏文本框光标

我需要删除闪烁的垂直线,该垂直线指示将要插入文本的位置,即使单击TextBox也是如此。 请注意, textbox已经是ReadOnly = true ,我不想禁用它。 任何想法? 谢谢!