ツールバーへのボタンの追加
ツールバーに独自のボタンを追加したり、不要なボタンを削除したりするには、C1GanttViewのToolStripを使用します。このオブジェクトのItems.Addメソッド、Items.Insertメソッド、およびItems.RemoveAtメソッドを用いて、ボタンの追加、挿入、削除を行うことができます。
ここでは、ツールバーにアプリケーションのバージョン情報を表示するコマンドボタンを追加します。
まず、ToolStripButtonクラスのコンストラクタでボタンを作成します。引数はボタンの文字列です。
次に、このボタンのイベントハンドラを作成し、C1GanttViewコントロールのToolStripコレクションオブジェクトに作成したボタンを追加します。
'ツールバーにボタンを追加。
Dim VerBtn As New ToolStripButton("バージョン")
AddHandler VerBtn.Click, AddressOf VerbuttonClick
C1GanttView1.ToolStrip.Items.Add(VerBtn) ' ツールバーの最後尾にボタンを追加
// ツールバーにボタンを追加
ToolStripButton VerBtn = new ToolStripButton("バージョン");
VerBtn.Click += new EventHandler(VerbuttonClick);
c1GanttView1.ToolStrip.Items.Add(VerBtn); // ツールバーの最後尾にボタンを追加
続いて、このボタン用のClickイベントハンドラを作成し、メッセージボックスを表示する処理を作成します。
Private Sub VerbuttonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
MessageBox.Show("GanttChart Ver1.0.0")
End Sub
private void VerbuttonClick(object sender, EventArgs e)
{
MessageBox.Show("GanttChart Ver1.0.0");
}
ツールバーからボタンを削除する場合はItems.RemoveAtメソッドを、挿入する場合はItems.Insertメソッドを使用します。それぞれ、Itemsプロパティに操作対象のボタンの位置を番号で指定します。
C1GanttView1.ToolStrip.Items.RemoveAt(2) ' 3番目のボタンを削除
c1GanttView1.ToolStrip.Items.RemoveAt(2); // 3番目のボタンを削除
コンテキストメニューのカスタマイズ
コンテキストメニューもカスタマイズすることができます。コンテキストメニューは、グリッドビューとチャートビューにそれぞれあり、どちらもコンテキストメニューの項目を追加または削除できます。
グリッドビューの場合はGridContextMenuオブジェクトを、チャートビューの場合はChartContextMenuオブジェクトにAddメソッドでコンテキストメニュー項目を追加します。メソッドの引数にはイベントハンドラの名前を指定します。
ここでは、グリッドビューではツールバーのツールチップの表示・非表示を、チャートビューではアプリケーションの上書き保存を行うコンテキストメニューを追加します。
' Grid用コンテキストメニューへの項目追加
Dim cmenu As New ContextMenuStrip
cmenu = C1GanttView1.GridContextMenu
cmenu.Items.Add("ツールバーにヒントを表示する", Nothing, AddressOf GridMenuItem1_click)
cmenu.Items.Add("ツールバーにヒントを表示しない", Nothing, AddressOf GridMenuItem2_click)
' Chart用コンテキストメニューへ項目を追加
Dim cmenu2 As New ContextMenuStrip
cmenu2 = C1GanttView1.ChartContextMenu
cmenu2.Items.Add("上書き保存", Nothing, AddressOf ChartMenuItem1_click)
// Grid用コンテキストメニューへの項目追加
ContextMenuStrip cmenu ;
cmenu = c1GanttView1.GridContextMenu;
cmenu.Items.Add("ツールバーにヒントを表示する", null, new EventHandler(GridMenuItem1_click));
cmenu.Items.Add("ツールバーにヒントを表示しない", null, new EventHandler(GridMenuItem2_click));
// Chart用コンテキストメニューへ項目を追加
ContextMenuStrip cmenu2 ;
cmenu2 = c1GanttView1.ChartContextMenu;
cmenu2.Items.Add("上書き保存", null, new EventHandler(ChartMenuItem1_click));
そして、イベントハンドラを作成しその中にコンテキストメニュー項目が選択された時の処理を作成します。
' 追加したGrid用コンテキストメニューアイテムのClickイベントを追加
Sub GridMenuItem1_click(sender As Object, e As EventArgs)
C1GanttView1.ToolStrip.ShowItemToolTips = True
End Sub
Sub GridMenuItem2_click(sender As Object, e As EventArgs)
C1GanttView1.ToolStrip.ShowItemToolTips = False
End Sub
' 追加したChart用コンテキストメニューアイテムのClickイベントを追加
Sub ChartMenuItem1_click(sender As Object, e As EventArgs)
C1GanttView1.SaveXml(fname)
MessageBox.Show("上書き保存しました")
End Sub
// 追加したGrid用コンテキストメニューアイテムのClickイベントを追加
private void GridMenuItem1_click(object sender, EventArgs e)
{
c1GanttView1.ToolStrip.ShowItemToolTips = true;
}
private void GridMenuItem2_click(object sender, EventArgs e)
{
c1GanttView1.ToolStrip.ShowItemToolTips =false;
}
// 追加したChart用コンテキストメニューアイテムのClickイベントを追加
private void ChartMenuItem1_click(object sender, EventArgs e)
{
c1GanttView1.SaveXml(fname);
MessageBox.Show("上書き保存しました");
}
印刷機能の有効化
C1GanttViewコントロールは、あらかじめ印刷する機能を実装しています。この機能は、C1Reportコントロールの機能を利用し、印刷プレビューからプリンタの設定,印刷まで印刷にかかわる機能を提供します。
使い方は簡単で、まず、C1GanttViewコントロールの「EnabledPrinting」プロパティをTrueに設定します。
そして、参照設定に以下のアセンブリを追加します。
- C1.C1Report.4.dll
- C1.Win.C1Report.4.dll
これだけで、ツールバーの印刷ボタンが有効になり、印刷処理が可能になります。
以上で完成です。
まとめ
今回は、C1GanttViewコントロールの最も基本的な機能を紹介しましたが、C1GanttViewコントロールはとても豊富な機能を持っており、また多くの要素をカスタマイズできるので、コントロールそのものがアプリケーションになっているといっても過言ではありません。
独自のプロジェクト管理アプリケーションを作成するのに新たな機能を追加する必要はなく、仕様に合わせてC1GanttViewコントロールをカスタマイズするだけで済みます。


