分享

c#.net 文本编辑控件——设置RichTextBox的字体和字体大小

 鸿枫nh 2016-05-20


 上一篇文章讨论了有关设置字体格式:粗体、斜体和下划线的问题,本文将要继续讨论的是如何设置字体和字体大小。字体和字体大小的设置与字体格式的设置道理是相同的,也要区分被选中文本的SelectionFont是否为空的问题。下面分别是设置字体种类和字体大小的相关代码。

[c-sharp] view plain copy
  1. /// <summary>  
  2. /// 设置字体种类,对应于字体下拉框选项  
  3.  /// </summary>  
  4. /// <param name="fontName">被选中的字体名</param>  
  5. private void ChangeFont(string fontName)  
  6. {  
  7.     if (fontName == string.Empty)  
  8.         throw new System.Exception("字体名称参数错误,不能为空");  
  9.   
  10.     RichTextBox tempRichTextBox = new RichTextBox();  //用于保存被选中文本的副本  
  11.         
  12.       //curRichTextBox是当前文本,即原型  
  13.       int curRtbStart = curRichTextBox.SelectionStart;    
  14.       int len = curRichTextBox.SelectionLength;  
  15.     int tempRtbStart = 0;  
  16.   
  17.     Font font = curRichTextBox.SelectionFont;  
  18.     if (len <= 1 && null != font)  
  19.     {  
  20.         curRichTextBox.SelectionFont = new Font(fontName, font.Size, font.Style);  
  21.         return;  
  22.     }  
  23.   
  24.     tempRichTextBox.Rtf = curRichTextBox.SelectedRtf;  
  25.     for (int i = 0; i < len; i++)  //逐个设置字体种类  
  26.       {  
  27.         tempRichTextBox.Select(tempRtbStart + i, 1);  
  28.         tempRichTextBox.SelectionFont =   
  29.             new Font(fontName, tempRichTextBox.SelectionFont.Size,       
  30.                      tempRichTextBox.SelectionFont.Style);  
  31.     }  
  32.   
  33.     //将副本内容插入到到原型中  
  34.     tempRichTextBox.Select(tempRtbStart, len);  
  35.     curRichTextBox.SelectedRtf = tempRichTextBox.SelectedRtf;    
  36.       curRichTextBox.Select(curRtbStart, len);  
  37.     curRichTextBox.Focus();  
  38. }  

 

[c-sharp] view plain copy
  1. /// <summary>  
  2. /// 设置字体大小,对应于字号下拉框选项  
  3.  /// </summary>  
  4. /// <param name="fontSize">被选中的字号</param>  
  5. private void ChangeFontSize(float fontSize)  
  6. {  
  7.     if (fontSize <= 0.0)  
  8.         throw new InvalidProgramException("字号参数错误,不能小于等于0.0");  
  9.   
  10.     RichTextBox tempRichTextBox = new RichTextBox();  
  11.   
  12.     int curRtbStart = curRichTextBox.SelectionStart;  
  13.     int len = curRichTextBox.SelectionLength;  
  14.     int tempRtbStart = 0;  
  15.   
  16.     Font font = curRichTextBox.SelectionFont;  
  17.     if (len <= 1 && null != font)  
  18.     {  
  19.         curRichTextBox.SelectionFont = new Font(font.Name, fontSize, font.Style);  
  20.         return;  
  21.     }  
  22.   
  23.     tempRichTextBox.Rtf = curRichTextBox.SelectedRtf;  
  24.     for (int i = 0; i < len; i++)  
  25.     {  
  26.         tempRichTextBox.Select(tempRtbStart + i, 1);  
  27.         tempRichTextBox.SelectionFont =   
  28.             new Font(tempRichTextBox.SelectionFont.Name,   
  29.                      fontSize, tempRichTextBox.SelectionFont.Style);  
  30.     }  
  31.   
  32.     tempRichTextBox.Select(tempRtbStart, len);  
  33.     curRichTextBox.SelectedRtf = tempRichTextBox.SelectedRtf;  
  34.     curRichTextBox.Select(curRtbStart, len);  
  35.     curRichTextBox.Focus();  
  36. }  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多