|
■No8677 (tk さん) に返信
> MSゴシック 9ptですが、フォントの高さの1/3 くらいは空いています。
> やりたいのはテキストエディタのような行間の狭さです。
「やりたいこと」に即しているかどうかはともかくとして、とりあえず、こんな感じで行間は変化しました。
行間によっては、文字の一部が切れるのでご注意あれ。
//-------------------------------
// PARAFORMAT2 の宣言方法については、先述の No8707 の通り。
[DllImport("user32", SetLastError = true)]
static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, ref PARAFORMAT2 lParam);
private void button1_Click(object sender, EventArgs e)
{
int size = Marshal.SizeOf(typeof(PARAFORMAT2));
PARAFORMAT2 pf = new PARAFORMAT2();
pf.cbSize = (uint)size;
//pf.rgxTabs = new int[MAX_TAB_STOPS];
pf.dwMask |= PFM_LINESPACING;
pf.bLineSpacingRule = 4;
//pf.dyLineSpacing = (int)numericUpDown1.Value;
pf.dyLineSpacing = 210;
int start = richTextBox1.SelectionStart;
int length = richTextBox1.SelectionLength;
richTextBox1.SelectAll();
/* int ret = */ SendMessage(richTextBox1.Handle, EM_SETPARAFORMAT, IntPtr.Zero,ref pf);
richTextBox1.Select(start, length);
}
|