我可以在任何应用程序中找到插入位置,但我需要知道当前插入位置有哪些文本(字)。
我如何获取文字?
答案 0 :(得分:2)
很难理解你的问题,这个问题似乎主要是作为一种陈述。
假设我理解你的问题,试试这样的方法......
Private Sub CheckPosition()
Dim char_pos As Long
Dim row As Long
Dim col As Long
char_pos = SendMessage(Text1.hwnd, EM_GETSEL, 0, 0)
char_pos = char_pos \ &H10000
row = SendMessage(Text1.hwnd, EM_LINEFROMCHAR, _
char_pos, 0) + 1
col = char_pos - SendMessage(Text1.hwnd, EM_LINEINDEX, _
-1, 0) + 1
lblPosition.Caption = "(" & Format$(row) & ", " & _
Format$(col) & ")"
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As _
Integer)
CheckPosition
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As _
Integer)
CheckPosition
End Sub
Private Sub Text1_MouseDown(Button As Integer, Shift As _
Integer, X As Single, Y As Single)
CheckPosition
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As _
Integer, X As Single, Y As Single)
CheckPosition
End Sub
答案 1 :(得分:2)
如果您使用的是WinForms应用程序,并且根据插入位置,您的意思是在文本框中使用Caret Position。然后你可以做这样的事情。
private void textBox1_KeyUp(object sender, EventArgs e)
{
GetWordFromCaretPosition(textBox1.Text, textBox1.SelectionStart);
}
private void textBox1_MouseUp(object sender, EventArgs e)
{
GetWordFromCaretPosition(textBox1.Text, textBox1.SelectionStart);
}
private string GetWordFromCaretPosition(string input, int position)
{
string word = string.Empty;
//Yet to be implemented.
return word;
}
textBox1.CaretIndex
textBox1.SelectionStart
表示。如果您的应用是Windows Phone应用,请参阅此主题:Selecting the tapped-on word on a single click in textbox