2
我找不到确定RTB中插入符号位置的方法,而我正在选择文本。 SelectionStart
不是选项。RichTextBox和Caret位置
我想检测选择的方向是否其后退或前进。我试图在SelectionChanged
事件中实现此目的。任何提示将不胜感激。
编辑:
我通过注册鼠标移动方向(X轴)与鼠标按下和MouseUp事件解决它。
代码:
bool IsMouseButtonPushed = false;
int selectionXPosition = 0, sDirection=0;
private void richTextBox_SelectionChanged(object sender, EventArgs e)
{
if (sDirection==2)//forward
{
//dosomething
}
}
private void richTextBox_MouseMove(object sender, MouseEventArgs e)
{
if (IsMouseButtonPushed && (selectionXPosition - e.X) > 0)//backward
{
sDirection = 1;
}
else if (IsMouseButtonPushed && (selectionXPosition - e.X) < 0)//forward
{
sDirection = 2;
}
}
private void richTextBox_MouseDown(object sender, MouseEventArgs e)
{
IsMouseButtonPushed = true;
selectionXPosition = e.X;
}
private void richTextBox_MouseUp(object sender, MouseEventArgs e)
{
IsMouseButtonPushed = false;
}
什么其他方法可以做到这一点?
你有什么试过的?为什么SelectionStart不能作为决定插入位置的选项?洞察可能有所帮助 – aevanko
因为正如我所说selectionStart在选择期间没有改变,或者我失去了一些东西 – user1017258