Я разрабатываю небольшое приложение WPF, в котором есть несколько вкладок. У меня есть строка состояния внизу; требование состоит в том, чтобы показать номер белья и столбец курсора. Поэтому, когда пользователь меняет позицию курсора, имя и столбец должны обновляться автоматически. Вот код, где я добавляю RichTextBox; код, который вычисляет номер строки и столбец, находится в обработчике событий KeyDown, но это событие никогда не вызывается. Какое событие я должен обработать, чтобы получить курсор linenumber и столбец?Позиция курсора внутри RichTextBox в WPF
private void AddTabitem(string filePath, mode fileMode)
{
if (fileMode == mode.openFile)
{
if (File.Exists(filePath))
{
RichTextBox mcRTB = new RichTextBox();
mcRTB.KeyDown += new KeyEventHandler(LineNumber);
//rest of the code goes here
}
}
}
mcRTB.KeyDown += new KeyEventHandler(LineNumber);
private void LineNumber(object sender, KeyEventArgs e)
{
TextPointer tp1 = rtbList[EditorTabcontrol.SelectedIndex].Selection.Start.GetLineStartPosition(0);
TextPointer tp2 = rtbList[EditorTabcontrol.SelectedIndex].Selection.Start;
int column = tp1.GetOffsetToPosition(tp2);
int someBigNumber = int.MaxValue;
int lineMoved, currentLineNumber;
rtbList[EditorTabcontrol.SelectedIndex].Selection.Start.GetLineStartPosition(-someBigNumber, out lineMoved);
currentLineNumber = -lineMoved;
string LineColumnLabel;
//LineColumnLabel.Content = "Line: " + currentLineNumber.ToString() + " Column: " + column.ToString();
LineColumnLabel = "Line: " + currentLineNumber.ToString() + " Column: " + column.ToString();
}
Я хочу, чтобы связать это текстовое поле, и когда пользователь перемещает курсор/нажимает клавиши со стрелками вниз/вверх, размер строки должен меняться. Итак, когда я должен включать этот код, я имею в виду, какое событие следует обрабатывать? – savi
Привет, Сави, я изменил код, который вам подходит. Если вы довольны кодом, пожалуйста, примите в качестве ответа – Sam1970