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

时间:2015-06-18 14:36:04

标签: winforms textbox highlighting

对于Winforms文本框,当您单击并拖动文本时,会突出显示该文本。有没有办法确定用户拖过哪个方向?

1 个答案:

答案 0 :(得分:2)

使用Windows TextBox选择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应用某些逻辑,您可能会发现光标移动的平均方向。如果用户进行线性运动,它将最有效。如果您只想在用户拖动鼠标时引发事件,您还可以处理文本框的拖放事件以获取类似的鼠标信息。