今天给大家带来的C#给RichTextbox控件的文字段落设置行间距例子代码是小编为大家整理放出的从一个完整的C#源码中整理出来的,需要添加其它代码才可以使用,或者你也能够单独摘出来代码片段使用,,赶紧来详细了解一下吧:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace HJJ { public partial class Form1 : Form { 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); /// <summary> /// 设置行距 /// </summary> /// <param name="ctl">控件</param> /// <param name="dyLineSpacing">间距</param> public static void SetLineSpace(Control ctl, int dyLineSpacing) { PARAFORMAT2 fmt = new PARAFORMAT2(); fmt.cbSize = Marshal.SizeOf(fmt); fmt.bLineSpacingRule = 5;// bLineSpacingRule; fmt.dyLineSpacing = dyLineSpacing; fmt.dwMask = PFM_LINESPACING; try { SendMessage(new HandleRef(ctl, ctl.Handle), EM_SETPARAFORMAT, 0, ref fmt); } catch { } } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { richTextBox1.Text = @"12121212 12121212 12121212 121212121 1212121212 发生地方哈 圣诞节福 利阿萨 德快捷回复 发生地方环境 阿萨德发挥afasd 阿斯蒂芬快结束了的f sfadfsdfsdf asdfsadfasdf asdfasdfds 开源爱好者 12121212 12121212 12121212 12121212 12121212 121212"; AdjustLineSpacing(); } private void button2_Click(object sender, EventArgs e) { _value += _d; AdjustLineSpacing(); } private void button1_Click(object sender, EventArgs e) { _value -= _d; AdjustLineSpacing(); } private void AdjustLineSpacing() { int index = richTextBox1.SelectionStart; richTextBox1.SelectAll(); SetLineSpace(richTextBox1, (int)_value); Console.WriteLine(_value + ""); //SetLineSpace(richTextBox1, (int)(richTextBox1.Font.Height * _value * 110 / 7 + 1)); richTextBox1.SelectionStart = index; } private decimal _value = 20; private decimal _d = new decimal(1); } }