问题描述
|
因此,当在上下文菜单中单击该选项时,我试图使选定数量的文本(在富文本框中)变为大写或小写。
这是我要使用的代码:
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();
}
}
但是,当我尝试时,文本不会更改...如何更改它?
解决方法
您不能更改现有的字符串实例。 ToUpper()和ToLower()返回一个新的字符串实例。
尝试
rtxtMain.SelectedText = rtxtMain.SelectedText.ToUpper();
, 字符串在C#中是不可变的。因此,所有内置操作,不仅包括ToLower
和ToUpper
,还包括Replace
,Trim
等,都将返回包含修改后数据的新字符串。他们不会更改您现有的字符串。
正如其他海报所指出的,这就是为什么您的答案是
rtxtMain.SelectedText = rtxtMain.SelectedText.ToUpper();
, rtxtMain.text =ttxtMain.text.Replace(rtxtmain.SelectedText,rtxtmain.SelectedText.ToUpper())