我们设置的行距大多是以像素为单位的,但是,dyLineSpacing是以 缇 为单位的,它们的关系是:1像素=15缇
还有bLineSpacingRule ,表示行间距的类型
其中:
3:dylinespace成员以 缇。的形式指定从一行到下一行的间隔。但是,如果dylinespace指定的值小于单间距,则控件将显示单间距文本。
4:dylinespace成员以 缇。的形式指定从一行到下一行的间距。控件使用指定的精确间距,即使dylinespace指定的值小于单个间距。
修改后的代码如下

public const int WM_USER = 0x0400;
public const int EM_GETPARAFORMAT = WM_USER + 61;
public const int EM_SETPARAFORMAT = WM_USER + 71;
public const long MAX_TAB_STOPS = 32;
public const uint PFM_LINESPACING = 0x00000100;
[StructLayout(LayoutKind.Sequential)]
private struct PARAFORMAT2
{public int cbSize;public uint dwMask;public short wNumbering;public short wReserved;public int dxStartIndent;public int dxRightIndent;public int dxOffset;public short wAlignment;public short cTabCount;[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]public int[] rgxTabs;public int dySpaceBefore;public int dySpaceAfter;public int dyLineSpacing;public short sStyle;public byte bLineSpacingRule;public byte bOutlineLevel;public short wShadingWeight;public short wShadingStyle;public short wNumberingStart;public short wNumberingStyle;public short wNumberingTab;public short wBorderSpace;public short wBorderWidth;public short wBorders;
}
[DllImport("user32", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(HandleRef hWnd, int msg, int wParam, ref PARAFORMAT2 lParam);//height:要指定的行高像素
private void SetLineSpace(Control ctl, int height)
{//1像素=15缇。int dyLineSpacing = height * 15;            //4:dylinespace成员以  缇。的形式指定从一行到下一行的间距。控件使用指定的精确间距,即使dylinespace指定的值小于单个间距。//3:dylinespace成员以  缇。的形式指定从一行到下一行的间隔。但是,如果dylinespace指定的值小于单间距,则控件将显示单间距文本。byte bLineSpacingRule = (byte)3;PARAFORMAT2 fmt = new PARAFORMAT2();fmt.cbSize = Marshal.SizeOf(fmt);fmt.bLineSpacingRule = bLineSpacingRule;fmt.dyLineSpacing = dyLineSpacing;fmt.dwMask = PFM_LINESPACING;try{SendMessage(new HandleRef(ctl, ctl.Handle), EM_SETPARAFORMAT, bLineSpacingRule, ref fmt);}catch{ }
}

调用:设置richTextBox1的文本行间距为40px

SetLineSpace(richTextBox1, 40);

1

测试结果OK,符合预期效果

winform的RichTextBox设置行距相关推荐

  1. C# Winform中RichTextBox如何设置文本某段字体的颜色

    C# Winform 中 RichTextBox如何设置文本某段字体颜色 一.在使用处新增代码 想要更改Text文本中某段需要特殊标注字体的颜色,使用TextBox是很难做到的,因为TextBox支持 ...

  2. 用RTF格式解决DrawText函数或Graphics.DrawString方法不能设置行距的问题

    绘制多行文字时会用到DrawText函数或Graphics.DrawString方法,但它们都无法设置行距,也无法设置段落间距.下图是用DrawString方法绘制的两段文字,可以看到中文测试段落的行 ...

  3. wps怎么减少行间距_wps怎么设置行距_wps的行间距在哪怎么调整单倍行距及1.5倍行距_wps文字_office之家...

    wps的行间距在哪怎么调整单倍行距及1.5倍行距 时间:2013-05-28   作者:snow   来源:互联网 WPS文字里调整行距的具体步骤: 1.选中你要调整行距的文字 2.点击鼠标右键 3. ...

  4. html文本间距1.5倍怎么设置,行距怎么设置18磅

    python写的测试框架怎么使用 安装 >pip install -U pytest # 通过pip安装 >py.test version # 查看pytest版本 This is pyt ...

  5. UITableViewCell设置行距

    自定义UITableViewCell设置行距 创建Custom类继承自UITableViewCell 重写其-(instancetype)initWithStyle:(UITableViewCellS ...

  6. Qt 多文本框设置行距和

    Qt 多文本框设置行距和间距在这里插入代码片 QTextDocument *document = ui->textEdit->document(); //获取文档对象 QTextFrame ...

  7. iText如何设置行距

    iText如何设置行距,通过文档试验发现,Paragraph的setLeading方法可以用来设置行距. 但是比较迷茫的是word中的几倍行距是什么的倍数?

  8. markdown如何调整行距_「行距怎么设置」【CSS】如何设置行距、段落间距、缩进格式 - seo实验室...

    行距怎么设置 在使用MarkDownHere的时候,需要利用CSS编辑各个段落的格式,本文记录了CSS中编辑格式的各个属性及其设置. 行距 行距一般使用line-height: value;来表示,比 ...

  9. 【CSS】如何设置行距、段落间距、缩进格式

    在使用MarkDownHere的时候,需要利用CSS编辑各个段落的格式,本文记录了CSS中编辑格式的各个属性及其设置. 行距 行距一般使用line-height: value;来表示,比如要设置行距为 ...

最新文章

  1. api.php t.cn,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
  2. php数独游戏开发,使用vue如何开发数独游戏
  3. JPA学习笔记2——JPA高级
  4. 科研找到属于自己的思想
  5. python xlrd处理表格常用方法
  6. 十道常见的MyBatis 面试题
  7. 如何在Elasticsearch中进行深分页
  8. Linux系统用户账号的管理技巧
  9. 脚本修改IIS连接数
  10. 少儿编程:C++绘图相关书籍篇
  11. webdrive不更新_关于selenium 用Webdrive打开Firefox不含有插件的问题(python)
  12. django实现搜索功能
  13. Android手机root概念
  14. vue.js 多页 php,vue-cli创建的项目,配置多页面的实现方法
  15. gstreamer的插件如何复制数据
  16. VS2017的C++开发心得(一)VS的项目创建
  17. 2012年2月编程语言排行榜:用图形编程的LOGO语言
  18. infor wms 中英文对照_视听盛宴 I纸牌屋揭露美国政治权力运作(16中英、纯英、无字幕可切换视频+中英文全剧本+全季音频)...
  19. POJ - 3404 Bridge over a rough river (DP)
  20. 软考案例题目答题技巧

热门文章

  1. Java程序员有话说 大专生毕业 6 年月薪 3W+:不从众也不普通
  2. pll制作分频器_业余的分频器制作方法
  3. 御龙在天不显示服务器,《御龙在天》突破瓶颈 服务器技术概念图解
  4. 2020春运来袭:3款免费抢票神器[Windows]
  5. 【面试】--【计算机网络】
  6. 服务器出现宕机可能的原因以及解决办法介绍
  7. 【战略合作伙伴专访】华为 当移动办公走进口袋
  8. 十天学会php之第一天
  9. PTA L2-1 点赞狂魔
  10. 读完《演进式架构》我悟了!!!