SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

.NETでプレビュー機能を持ったリッチテキストエディタを作る

Preview for .NETコンポーネントの便利なテクニック

  • このエントリーをはてなブックマークに追加

GUIの作成

 GUIは、プロジェクトに2つのフォームを追加して作成します。

 今回使用する「C1PrintPreviewControl」コンポーネントは、コンポーネント自体にツールバーやペインが実装されているコンポーネントで、ツールバーのボタンには既に処理を実行する機能が組み込まれています。

Form1の作成

 Form1には、ToolStripコントロールを組み込みます。Dockプロパティはデフォルトの「Top」のままで、Buttonを3つ追加します。各Buttonは「Text」のみとし、次の文字列を設定します。

  • フォント
  • 文字色
  • プレビュー

 その下に、「RichText」コントロールを配置し、Dockプロパティを「Fill」にします。そして「FontDialog」と「ColorDialog」コントロールを配置します。

Form1のGUIデザイン
Form1のGUIデザイン

Form2の作成

 Form2には、「C1PrintPreviewControl」コンポーネントと「C1PrintDocument」コンポーネントを配置します。自動的に「C1PrintPreviewControl」コンポーネントのDocumentプロパティに「C1PrintDocument」コンポーネントが設定され、2つのコンポーネントが連動するようになります。

 「C1PrintPreviewControl」コンポーネントは、コンポーネント自体にツールバーやペインが実装されているコンポーネントです。ツールバーのボタンには既に処理を実行する機能が組み込まれているので、コンポーネントを1つフォームに配置して、Dockプロパティを「Fill」に設定するだけで、画面のようなユーザーインターフェースが出来上がります。

 なお、この時「C1PrintPreviewControl」コンポーネントのModifierプロパティの値を確認してください。この値が「Private」になっていると、Form1からこのコンポーネントを参照できなくなってしまいます。Visual Basicではデフォルトが「Friend」なのでそのままで大丈夫ですが、C#ではデフォルトが「Private」になっている場合があるので、「Public」または「Friend」に変更してください。

Form2のGUIデザイン
Form2のGUIデザイン
C1PrintPreviewControlコンポーネントのModifierプロパティの値をPublicにする
C1PrintPreviewControlコンポーネントのModifierプロパティの値をPublicにする

RichTextコントロールの処理

 RichTextコントロールは、多彩な編集機能を持っていますが今回はフォントの設定と文字色を設定する機能だけを組み込みます。なお、コードの先頭に名前空間「C1.C1Preview」への参照を入れておいてください。

フォントの設定

 RichTextに入力された文字列を選択状態にして、ツールバーの[フォント]ボタンを押すと、フォントダイアログボックスを表示し、ここで選択した「フォントの種類」「スタイル」「サイズ」を選択文字列に適用するようにします。

 この処理は、まずFontDialogコントロールを表示し、FontFamily、Sizeプロパティの値を取得し、これを元に新しいFontオブジェクトを作成します。そして、RichTextコントロールのSelectionFontプロパティに設定します。

VB.NET
Imports C1.C1Preview

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles ToolStripButton1.Click
    Dim fontname As FontFamily
    Dim fontsize As Single
    
    With FontDialog1
        .ShowDialog()
        fontname = .Font.FontFamily
        fontsize = .Font.Size
    End With

    Dim newfont As New Font(fontname, fontsize)
    Me.RichTextBox1.SelectionFont = newfont
End Sub
C#.NET
using C1.C1Preview;

private void toolStripButton1_Click(object sender, EventArgs e)
{
    FontFamily fontname;
    float fontsize;

    fontDialog1.ShowDialog();
    fontname = fontDialog1.Font.FontFamily;
    fontsize = fontDialog1.Font.Size;

    Font newfont = new Font(fontname, fontsize);
    richTextBox1.SelectionFont = newfont;
}

文字色の設定

 選択した文字の文字色を変更する処理を、ツールバーの[文字色]ボタンに設定します。この処理は、色の選択ダイアログボックスを表示し、Colorプロパティの値を、RichTextコントロールのSelectionColorプロパティに設定するだけです。

VB.NET
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles ToolStripButton2.Click
    Me.ColorDialog1.ShowDialog()
    Me.RichTextBox1.SelectionColor = Me.ColorDialog1.Color
End Sub
C#.NET
private void toolStripButton2_Click(object sender, EventArgs e)
{
    colorDialog1.ShowDialog();
    richTextBox1.SelectionColor = colorDialog1.Color;
}

次のページ
プレビューの処理

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1610 2008/08/20 13:50

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング