Остается выделенный текст в TextBox по-прежнему выбранным или сфокусированным после нажатия кнопки - PullRequest
0 голосов
/ 10 июля 2020

У меня в проекте winform 2 кнопки. Я хочу добавить <b></b> или <i></i> вокруг выделенного текста в TextBox, если пользователь нажимает кнопку. Я хочу, чтобы выделенный текст оставался в фокусе после нажатия каждой кнопки. С помощью следующего кода после нажатия кнопки выделенный текст исчезает. Как я могу решить эту проблему?

private void btnBold_Click(object sender, EventArgs e)
   {
       string selectedTxt = TextBox1.SelectedText;
       TextBox1.SelectedText = "<b>" + selectedTxt + "</b>";
   }

private void btnItalic_Click(object sender, EventArgs e)
   {
        string selectedTxt = TextBox1.SelectedText;
        TextBox1.SelectedText = "<i>" + selectedTxt + "</i>";
   }

1 Ответ

2 голосов
/ 10 июля 2020

Вы можете получить индекс выделенного текста через свойство SelectionStart. Затем установите SelectionLength и вызовите метод ScrollToCaret как «выделенный выделенный текст».

private void button1_Click(object sender, EventArgs e)
{
    int index = textBox1.SelectionStart;
    int selectlength = textBox1.SelectedText.Length;
    textBox1.SelectedText = "<b>" + textBox1.SelectedText + "</b>";
    textBox1.Focus();
    textBox1.SelectionStart = index; // set the start position
    textBox1.SelectionLength = selectlength  + 7; // set length
    textBox1.ScrollToCaret();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...