0
У меня есть TextBox, который имеет много строк текста, это время обновления, как это:Как получить строку TextBox из положения мыши?
public void UpdateMessageBox(TextBox textBox, string text)
{
textBox.SelectionStart = 0;
textBox.SelectionLength = 0;
textBox.SelectedText = String.Format("{0:HH:mm:ss }", DateTime.Now) + text + "\n";
textBox.ScrollToHome();
}
Теперь мне нужно получить текст из строки, на которой мыши средняя кнопка была нажата сразу, не выбирая линию щелкнув левой кнопкой мыши.
private void textBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Middle && e.ButtonState == MouseButtonState.Pressed)
{
e.MouseDevice.GetPosition(textBox) //what next?
}
}
Как я могу получить строку textBox и текст из положения мыши?
здорово! Можете ли вы уточнить: 1) Зачем нам нужен myTextBox.CaptureMouse()? - он работал бы без этой строки 2) «используя PreviewMouseUp, чем PreviewMouseDown - вы получаете, какая кнопка нажата по умолчанию, а не проверять себя»? – Dork
Ha! Просто верну свой ответ и увидев все ошибки - слишком много печатают сегодня. Я немного отредактировал ответ, чтобы разобраться. Обратите внимание на опечатку, которую я сделал - «PreviewMouseDown =« TextBox_PreviewMouseUp ». Я предположил, что вы не можете получить нажатой кнопку из PreviewMouseDown, которая была * неправильной *. Я также снял код myCharIndex здесь: http://stackoverflow.com/a/10620373/1095741, который использовал myTextBox.CaptureMouse, чтобы получить щелчок мыши, а не событие. – goobering