2015-06-18 8 views

ответ

2

Невозможно получить эту информацию с помощью API выбора TextBox Windows. Например, сообщение 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 потенциально вы можете обнаружить среднее направление курсор движется. Это будет работать лучше всего, если пользователь делает линейное движение. Вы также можете обрабатывать событие drag-and-drop текстового поля для аналогичной информации о мыши, если вы хотите, чтобы событие было поднято, когда пользователь перетаскивал мышь.