我一直在想如何在文本框中移动闪烁线时触发事件。 我希望此事件包含该行当前(行,列)位置的信息。 例如,如果我从0开始并按Enter键3次,我怎样才能得到该线的新坐标?
很抱歉,如果我没有尽可能清楚地解释这个问题。
感谢。
答案 0 :(得分:0)
我假设通过闪烁的线你的意思是“光标”! 文本框内容被视为纯字符串,因此有一个名为SelectionStart的属性,您可以使用它来查看光标所在的位置。
像 -
int blinkingLinePos = myBigTextBox.SelectionStart;
答案 1 :(得分:0)
如果您使用键盘移动插入符号,则您要查找的事件包括KeyUp
和KeyDown
事件。
以下是计算当前光标位置的代码:
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
int posInText = textBox1.SelectionStart;
int lineNr = textBox1.GetLineFromCharIndex( posInText );
int posInLine = textBox1.SelectionStart - textBox1.GetFirstCharIndexFromLine(lineNr);
}
如果您通过点击鼠标更改位置,则可以在Click
或MouseClick
事件中使用相同的代码。