如何把RichTextBox 里的字(有不同字体和颜色) 全部变为 粗体的?

解决方案 »

  1.   

                Font oFont, nFont;
                oFont = richTextBox1.SelectionFont;
                richTextBox1.SelectAll();
                nFont = new Font(oFont,  FontStyle.Bold);
                richTextBox1.SelectionFont = nFont;
      

  2.   

    3 楼 办法 不可行,
    因为 
    oFont = richTextBox1.SelectionFont;
    如果 我选择 的字 有不同的 字体,颜色,是否粗体 等不一致时 ,返回是 NULL ,所以下面的语句就会报错。
    2楼办法 效率好低,如果我有很多文字那样办法好像很笨,我没有试过。
      

  3.   

    当然了,还有一个比较可行的方法
    条件是你熟悉RTF文档格式,因为RTF存储的一定格式的字符
    你用正则替换,RTF的取得是RichTextBox.Rtf获取所有内容的RTF格式代码
    RichTextBox.SelectedRtf 当前选中内容的RTF格式代码
      

  4.   

    谢谢楼上,对.NET 这些操作感到失望,这样一个很基础需求也要花很大精力和效率成本。
      

  5.   


    你的思路本来就是错误的,要做这些本来就不应该用RichTextBox,而应该自己写控件,不要在一个问题上把.NET打死。
      

  6.   

    Font oFont, nFont;
      oFont = richTextBox1.SelectionFont;
      richTextBox1.SelectAll();
      nFont = new Font(oFont, FontStyle.Bold);
      richTextBox1.SelectionFont = nFont;