RichTextBoxの選択部分のフォントを取得するには
1 |
RichTextBox.SelectionFont |
フォントのサイズを取得するのであれば
1 |
RichTextBox.SelectionFont.Size |
ただサイズを変更するときに
1 |
RichTextBox.SelectionFont.Size = 10; |
とはできません。Fontオブジェクトのインスタンスを新たに生成し、それをFontプロパティにセットするしかありません。
1 2 |
// "MS ゴシック"の14ptに変更 richTextBox1.Font = new System.Drawing.Font("MS ゴシック", 14); |
面倒くさい。
選択部分のフォントサイズを変更して、これを複数のRichTextBoxで同期させます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
public partial class SyncRichTextBox : UserControl { void SetFontSize(float size) { int start = SelectionStart; int len = SelectionLength; RichTextBox r = new RichTextBox(); r.SelectedRtf = SelectedRtf; int len1 = r.Text.Length; if (len1 == 0) return; for (int i = 0; i < len1; i++) { r.Select(i, 1); Color newColor = Color.Empty; Color oldColor = Color.Empty; Font oldFont = r.SelectionFont; Font newFont = new Font(oldFont.Name, size, oldFont.Style); r.SelectionFont = newFont; } r.SelectAll(); string rtf = r.SelectedRtf; r.Dispose(); if (SelectedRtf == rtf) return; if (SetSelectedRtf(rtf, "SelectionFontSize")) { var buf = Data.GetUndobuf(); buf.newSelectionStart = start; buf.newSelectionLength = len; SelectionStart = start; SelectionLength = len; } } public float SelectionFontSize { get { if (richTextBoxEx1.SelectionFont == null) return 0; return richTextBoxEx1.SelectionFont.Size; } set { SetFontSize(value); } } } |
それ以外の部分は前回と同じです。
あとフォント名のみの変更もやってみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
public partial class SyncRichTextBox : UserControl { void SetFontName(string fontName) { int start = SelectionStart; int length = SelectionLength; RichTextBox r = new RichTextBox(); r.SelectedRtf = SelectedRtf; int len1 = r.Text.Length; if (len1 == 0) return; for (int i = 0; i < len1; i++) { r.Select(i, 1); Color newColor = Color.Empty; Color oldColor = Color.Empty; Font oldFont = r.SelectionFont; Font newFont = new Font(fontName, oldFont.Size, oldFont.Style); r.SelectionFont = newFont; } r.SelectAll(); string rtf = r.SelectedRtf; r.Dispose(); if (SelectedRtf == rtf) return; if (SetSelectedRtf(rtf, "SelectionFontName")) { var buf = Data.GetUndobuf(); buf.newSelectionStart = start; buf.newSelectionLength = length; SelectionStart = start; SelectionLength = length; } } public string SelectionFontName { get { if (richTextBoxEx1.SelectionFont == null) return ""; return richTextBoxEx1.SelectionFont.Name; } set { SetFontName(value); } } } |