ツールバーへのボタンの追加
ツールバーに独自のボタンを追加したり、不要なボタンを削除したりするには、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コントロールをカスタマイズするだけで済みます。