C #: добавление текста туда, где находится курсор - PullRequest
1 голос
/ 23 августа 2010

Я хочу обработать нажатие клавиши табуляции таким образом, чтобы

если выделенного текста нет, добавьте 4 пробела в позиции курсора. если есть выделенный текст, я хочу добавить 4 пробела в начале каждой выбранной строки. что-то вроде того, что делает ide как визуальная студия. как мне это сделать?

Я использую WPF / C #

1 Ответ

2 голосов
/ 23 августа 2010

Если это для WPF:

textBox.AcceptsReturn = true;
textBox.AcceptsTab = false;
textBox.KeyDown += OnTextBoxKeyDown;
...

private void OnTextBoxKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key != Key.Tab)
        return;

    string tabReplacement = new string(' ', 4);
    string selectedTextReplacement = tabReplacement +
        textBox.SelectedText.Replace(Environment.NewLine, Environment.NewLine + tabReplacement);

    int selectionStart = textBox.SelectionStart;
    textBox.Text = textBox.Text.Remove(selectionStart, textBox.SelectionLength)
                               .Insert(selectionStart, selectedTextReplacement);

    e.Handled = true; // to prevent loss of focus
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...