SHOEISHA iD

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

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

ComponentZine(ComponentOne)

サイドキャプション付きメニューを持ったWindowsフォームを作る

ComponentOne Studio 2010のC1MainMenuコントロールを使った.NETアプリケーションの作成

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

プログラムの仕上げ

 最後に、プログラムの機能を組み込みます。

 まず、フォームにRichTextBoxコントロールを配置し、Dockプロパティを「Fill」にします。そして、「FontDialog」「ColorDialog」の2つのダイアログコントロールを配置します。

処理コードの作成

 各メニューが選択された時の処理は、それぞれのC1CommandオブジェクトのClickイベントハンドラに作成します。フォームデザイナで各メニューコマンドをダブルクリックすると、Clickイベントハンドラが作成されます。CheckBoxコントロールは、そのままCheckBoxコントロールのイベントハンドラを利用します。

 ここでは、「ファイル」メニューの「新規作成」コマンドと「編集」「書式」メニューのすべてのコマンド、CheckBoxコントロールに、それぞれRichTextBoxコントロールを操作する処理を組み込んでいます。

Visual Basic
Public Class Form1

    Private Sub c1Command1_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Handles c1Command1.Click
        RichTextBox1.Text = sender.Text & "が選択されました"
    End Sub

    Private Sub c1Command6_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Handles c1Command6.Click
        RichTextBox1.Undo()
    End Sub

    Private Sub c1Command7_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Handles c1Command7.Click
        RichTextBox1.Cut()
    End Sub

    Private Sub c1Command8_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Handles c1Command8.Click
        RichTextBox1.Copy()
    End Sub

    Private Sub c1Command9_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Handles c1Command9.Click
        RichTextBox1.Paste()
    End Sub

    Private Sub C1Command10_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Handles C1Command10.Click
        FontDialog1.ShowDialog()
        RichTextBox1.SelectionFont = FontDialog1.Font
    End Sub

    Private Sub C1Command11_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1Command.ClickEventArgs) Handles C1Command11.Click
        ColorDialog1.ShowDialog()
        RichTextBox1.SelectionColor = ColorDialog1.Color
    End Sub

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked = True Then
            RichTextBox1.BackColor = Color.Aqua
        Else
            RichTextBox1.BackColor = Color.White
        End If
    End Sub
End Class
C#
namespace mymenu_cs
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void c1Command1_Click(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            richTextBox1.Text = c1Command1.Text + "が選択されました";
        }

        private void c1Command5_Click(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            richTextBox1.Undo();
        }

        private void c1Command6_Click(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            richTextBox1.Cut();
        }

        private void c1Command7_Click(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            richTextBox1.Copy();
        }

        private void c1Command8_Click(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            richTextBox1.Paste();
        }

        private void c1Command10_Click(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            fontDialog1.ShowDialog();
            richTextBox1.SelectionFont = fontDialog1.Font;
        }

        private void c1Command11_Click(object sender, C1.Win.C1Command.ClickEventArgs e)
        {
            colorDialog1.ShowDialog();
            richTextBox1.SelectionColor = colorDialog1.Color;
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                richTextBox1.BackColor = Color.Aqua;
            }
            else
            {
                richTextBox1.BackColor = Color.White;
            }

        }
    }
}
プログラム実行画面
プログラム実行画面

まとめ

 C1MainMenuコントロールは、このようにメニュー作成作業の工数をかなり短縮してくれるコントロールです。加えて、標準のメインメニューにはない機能まで備えているので、他のアプリケーションと一味違うメニューを実装したい方には、お勧めのコントロールです。

製品情報

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5776 2011/03/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング