突出显示Winforms文本框中的文本

突出显示Winforms文本框中的文本,winforms,textbox,highlighting,Winforms,Textbox,Highlighting,对于Winforms文本框,当您单击并拖动文本时,它会高亮显示该文本。是否有办法确定用户拖动的方向?无法使用Windows文本框选择API获取此信息。例如,EM_GETSEL消息定义选择的开始和结束字符位置,但按预定义(排序)顺序 但是,您可以通过处理控件的MouseMove事件来获取此信息。例如: textBox1.MouseMove += new MouseEventHandler(textBox1_MouseMove); void textBox1_MouseMove(object se

对于Winforms文本框,当您单击并拖动文本时,它会高亮显示该文本。是否有办法确定用户拖动的方向?

无法使用Windows文本框选择API获取此信息。例如,
EM_GETSEL
消息定义选择的开始和结束字符位置,但按预定义(排序)顺序

但是,您可以通过处理控件的
MouseMove
事件来获取此信息。例如:

textBox1.MouseMove += new MouseEventHandler(textBox1_MouseMove);

void textBox1_MouseMove(object sender, MouseEventArgs e)
{
    Control tbCtrl = sender as Control;
    // the mouse coordinate values here are relative to the coordinates of the control that raised the event
    int mouseX = e.X;
    ...
}
通过对
mouseX
应用一些逻辑,您可能会发现光标移动的平均方向。如果用户正在进行线性运动,则效果最佳。如果您只希望在用户拖动鼠标时引发事件,还可以处理文本框的拖放事件以获得类似的鼠标信息