Как изменить регистр текста в RichTextBox? - PullRequest
2 голосов
/ 18 июня 2011

Поэтому я пытаюсь сделать выбранный объем текста (в поле расширенного текста) заглавными или строчными, когда эта опция нажата в контекстном меню.

Вот код, который я пытаюсь использовать:

private void toUPPERCASEToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (rtxtMain.SelectedText != "")
            {
                rtxtMain.SelectedText.ToUpper();
            }
        }

private void toLowercaseToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (rtxtMain.SelectedText != "")
            {
                rtxtMain.SelectedText.ToLower();
            }
        }

Однако, когда я пытаюсь это сделать, текст не меняется ... Как мне его изменить?

Ответы [ 3 ]

10 голосов
/ 18 июня 2011

Вы не можете изменить существующий экземпляр строки.ToUpper () и ToLower () возвращают новый экземпляр строки.

Try

rtxtMain.SelectedText = rtxtMain.SelectedText.ToUpper();
6 голосов
/ 18 июня 2011

Строки неизменны в C #.Таким образом, все встроенные операции, включая не только ToLower и ToUpper, но также Replace, Trim и т. Д., Будут возвращать новые строки, содержащие измененные данные.Они не изменят вашу существующую строку.

По этой причине, как отметили остальные авторы, ваш ответ

rtxtMain.SelectedText = rtxtMain.SelectedText.ToUpper();
0 голосов
/ 18 июня 2011
rtxtMain.text =ttxtMain.text.Replace(rtxtmain.SelectedText,rtxtmain.SelectedText.ToUpper())
...