プログラムの仕上げ
最後に、プログラムの機能を組み込みます。
まず、フォームにRichTextBoxコントロールを配置し、Dockプロパティを「Fill」にします。そして、「FontDialog」「ColorDialog」の2つのダイアログコントロールを配置します。
処理コードの作成
各メニューが選択された時の処理は、それぞれのC1CommandオブジェクトのClickイベントハンドラに作成します。フォームデザイナで各メニューコマンドをダブルクリックすると、Clickイベントハンドラが作成されます。CheckBoxコントロールは、そのままCheckBoxコントロールのイベントハンドラを利用します。
ここでは、「ファイル」メニューの「新規作成」コマンドと「編集」「書式」メニューのすべてのコマンド、CheckBoxコントロールに、それぞれRichTextBoxコントロールを操作する処理を組み込んでいます。
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
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コントロールは、このようにメニュー作成作業の工数をかなり短縮してくれるコントロールです。加えて、標準のメインメニューにはない機能まで備えているので、他のアプリケーションと一味違うメニューを実装したい方には、お勧めのコントロールです。

