画像を設定する
ファンクションキーボタンに追加した、ファンクションキーのボタンは、FunctionKeyButtonオブジェクトを使用して設定します。
DisplayStyle プロパティで画像を表示するように設定されている場合、画像をカスタマイズすることができます。GcFunctionKey コントロールには、独自のボタン画像が用意されており、デフォルトの状態では追加するキーに従い、下記のような画像が表示されます。
![](images/GcFunctionKey.ButtonImage.png)
(図)デフォルトのボタン画像
デフォルトのイメージは、ボタンのFunctionKeyプロパティの設定値をコントロールが描画していますが、ImageTextプロパティを設定することで、イメージに表示する文字列を変更することができます。
![](images/GcFunctionKey.ImageText.png)
任意の画像をボタンに設定するには、Image プロパティを使用します。また、ボタン上のテキストと画像の位置については、TextImageRelation プロパティで設定します。
次のサンプルコードは、ファンクションキーボタンに追加したボタンに任意の画像を表示しています。
DisplayStyle プロパティで画像を表示するように設定されている場合、画像をカスタマイズすることができます。GcFunctionKey コントロールには、独自のボタン画像が用意されており、デフォルトの状態では追加するキーに従い、下記のような画像が表示されます。
![](images/GcFunctionKey.ButtonImage.png)
(図)デフォルトのボタン画像
デフォルトのイメージは、ボタンのFunctionKeyプロパティの設定値をコントロールが描画していますが、ImageTextプロパティを設定することで、イメージに表示する文字列を変更することができます。
Imports GrapeCity.Win.Bars Dim FunctionKeyButton1 As New FunctionKeyButton FunctionKeyButton1.FunctionKey = Keys.F2 FunctionKeyButton1.ImageText = "F2:クリア";
using GrapeCity.Win.Bars; FunctionKeyButton functionKeyButton1 = new FunctionKeyButton(); functionKeyButton1.FunctionKey = Keys.F2; functionKeyButton1.ImageText = "F2:クリア";
![](images/GcFunctionKey.ImageText.png)
任意の画像をボタンに設定するには、Image プロパティを使用します。また、ボタン上のテキストと画像の位置については、TextImageRelation プロパティで設定します。
次のサンプルコードは、ファンクションキーボタンに追加したボタンに任意の画像を表示しています。
Imports GrapeCity.Win.Bars Dim FunctionKeyButton1 As New FunctionKeyButton FunctionKeyButton1.FunctionKey = Keys.F1 FunctionKeyButton1.Text = "F1-保存" FunctionKeyButton1.ForeColor = Color.DarkOrange FunctionKeyButton1.Font = new Font("Meiryo UI", 12, FontStyle.Bold) FunctionKeyButton1.TextAlign = ContentAlignment.MiddleCenter FunctionKeyButton1.Image = Image.FromFile("C:\images\Save.png") FunctionKeyButton1.ImageAlign = ContentAlignment.MiddleCenter FunctionKeyButton1.TextImageRelation = TextImageRelation.ImageAboveText GcFunctionKey1.FunctionKeyButtons.Add(FunctionKeyButton1) Dim FunctionKeyButton2 As New FunctionKeyButton FunctionKeyButton2.FunctionKey = Keys.F10 FunctionKeyButton2.Text = "F10-ホーム" FunctionKeyButton2.ForeColor = Color.DarkGreen FunctionKeyButton2.Font = new Font("Meiryo UI", 12, FontStyle.Bold) FunctionKeyButton2.TextAlign = ContentAlignment.MiddleCenter FunctionKeyButton2.Image = Image.FromFile("C:\images\Home.png") FunctionKeyButton2.ImageAlign = ContentAlignment.MiddleCenter FunctionKeyButton2.TextImageRelation = TextImageRelation.ImageAboveText GcFunctionKey1.FunctionKeyButtons.Add(FunctionKeyButton2) Dim FunctionKeyButton3 As New FunctionKeyButton FunctionKeyButton3.FunctionKey = Keys.F12 FunctionKeyButton3.Text = "F12-ログアウト" FunctionKeyButton3.ForeColor = Color.RoyalBlue FunctionKeyButton3.Font = new Font("Meiryo UI", 12, FontStyle.Bold) FunctionKeyButton3.TextAlign = ContentAlignment.MiddleCenter FunctionKeyButton3.Image = Image.FromFile("C:\images\Logout.png") FunctionKeyButton3.ImageAlign = ContentAlignment.MiddleCenter FunctionKeyButton3.TextImageRelation = TextImageRelation.ImageAboveText GcFunctionKey1.FunctionKeyButtons.Add(FunctionKeyButton3)
using GrapeCity.Win.Bars; FunctionKeyButton functionKeyButton1 = new FunctionKeyButton(); functionKeyButton1.FunctionKey = Keys.F1; functionKeyButton1.Text = "F1-保存"; functionKeyButton1.ForeColor = Color.DarkOrange; functionKeyButton1.Font = new Font("Meiryo UI", 12, FontStyle.Bold); functionKeyButton1.TextAlign = ContentAlignment.MiddleCenter; functionKeyButton1.Image = Image.FromFile(@"C:\images\Save.png"); functionKeyButton1.ImageAlign = ContentAlignment.MiddleCenter; functionKeyButton1.TextImageRelation = TextImageRelation.ImageAboveText; gcFunctionKey1.FunctionKeyButtons.Add(functionKeyButton1); FunctionKeyButton functionKeyButton2 = new FunctionKeyButton(); functionKeyButton2.FunctionKey = Keys.F10; functionKeyButton2.Text = "F10-ホーム"; functionKeyButton2.ForeColor = Color.DarkGreen; functionKeyButton2.Font = new Font("Meiryo UI", 12, FontStyle.Bold); functionKeyButton2.TextAlign = ContentAlignment.MiddleCenter; functionKeyButton2.Image = Image.FromFile(@"C:\images\Home.png"); functionKeyButton2.ImageAlign = ContentAlignment.MiddleCenter; functionKeyButton2.TextImageRelation = TextImageRelation.ImageAboveText; gcFunctionKey1.FunctionKeyButtons.Add(functionKeyButton2); FunctionKeyButton functionKeyButton3 = new FunctionKeyButton(); functionKeyButton3.FunctionKey = Keys.F12; functionKeyButton3.Text = "F12-ログアウト"; functionKeyButton3.ForeColor = Color.RoyalBlue; functionKeyButton3.Font = new Font("Meiryo UI", 12, FontStyle.Bold); functionKeyButton3.TextAlign = ContentAlignment.MiddleCenter; functionKeyButton3.Image = Image.FromFile(@"C:\images\Logout.png"); functionKeyButton3.ImageAlign = ContentAlignment.MiddleCenter; functionKeyButton3.TextImageRelation = TextImageRelation.ImageAboveText; gcFunctionKey1.FunctionKeyButtons.Add(functionKeyButton3);
![](images/GcFunctionKey.Image.png)
ツールチップの表示
FunctionKeyButton クラスの ToolTipText プロパティに文字列を設定し、GcFunctionKey コントロールの ShowItemToolTips プロパティを True にすると、そのファンクションキーボタンにマウスポインタが置かれたときに、ツールチップ(ToolTipText プロパティで設定した文字列)を表示することができます。
![](images/GcFunctionKey.ToolTip.png)
ファンクションキーボタンの表示
CombinationKeyDisplayModeプロパティは、ファンクションキーボタンに追加されたボタンの表示モードを設定します。CombinationKeyDisplayMode.Dynamic に設定されている場合、ファンクションキーボタンの表示は修飾子(Ctrl、Shift、Altキー)によってフィルタされます。例えば、ファンクションキーボタンに[Shift]+[A]キーが設定されていると、[Shift]キー押下時のみこのキーボタンが表示されます。CombinationKeyDisplayMode.Always に設定されている場合は、修飾子によるフィルタは行われず、表示可能なファンクショントキーボタンはすべて表示されます。
次のサンプルコードで追加したファンクションキーボタンは表示モードによって以下のように表示されます。
![](images/GcFunctionKey.CombinationKeyDisplayModeDynamic1.png)
(図)CombinationKeyDisplayMode プロパティがDynamic の場合の通常時
![](images/GcFunctionKey.CombinationKeyDisplayModeDynamic2.png)
(図)CombinationKeyDisplayMode プロパティがDynamic の場合のControlキー押下時
![](images/GcFunctionKey.CombinationKeyDisplayModeDynamic3.png)
(図)CombinationKeyDisplayMode プロパティがDynamic の場合のShiftキー押下時
![](images/GcFunctionKey.CombinationKeyDisplayModeAlways1.png)
(図)CombinationKeyDisplayMode プロパティがAlways の場合
また、Sorted プロパティを True に設定すると、ファンクションキーボタンに追加されたボタンがソートされた状態で表示されます。
次のサンプルコードで追加したファンクションキーボタンは表示モードによって以下のように表示されます。
Imports GrapeCity.Win.Bars Dim FunctionKeyButton1 As New FunctionKeyButton FunctionKeyButton1.FunctionKey = Keys.F1 FunctionKeyButton1.Text = "ヘルプ" Dim FunctionKeyButton2 As New FunctionKeyButton FunctionKeyButton2.FunctionKey = Keys.F2 FunctionKeyButton2.Text = "参照" Dim FunctionKeyButton3 As New FunctionKeyButton FunctionKeyButton3.FunctionKey = Keys.F4 FunctionKeyButton3.Text = "戻る" Dim FunctionKeyButton4 As New FunctionKeyButton FunctionKeyButton4.FunctionKey = Keys.F5 FunctionKeyButton4.Text = "検索" Dim FunctionKeyButton5 As New FunctionKeyButton FunctionKeyButton5.FunctionKey = Keys.F12 FunctionKeyButton5.Text = "更新" GcFunctionKey1.FunctionKeyButtons.AddRange(New FunctionKeyButton() { _ FunctionKeyButton1, FunctionKeyButton2, FunctionKeyButton3, _ FunctionKeyButton4, FunctionKeyButton5}) Dim FunctionKeyButton6 As New FunctionKeyButton FunctionKeyButton6.FunctionKey = Keys.Control Or Keys.Down FunctionKeyButton6.Text = "前のページ" Dim FunctionKeyButton7 As New FunctionKeyButton FunctionKeyButton7.FunctionKey = Keys.Control Or Keys.Up FunctionKeyButton7.Text = "次のページ" GcFunctionKey1.FunctionKeyButtons.AddRange(New FunctionKeyButton() { _ FunctionKeyButton6, FunctionKeyButton7}) Dim FunctionKeyButton8 As New FunctionKeyButton FunctionKeyButton8.FunctionKey = Keys.Shift Or Keys.A FunctionKeyButton8.Text = "全件選択" GcFunctionKey1.FunctionKeyButtons.Add(FunctionKeyButton8)
using GrapeCity.Win.Bars; FunctionKeyButton functionKeyButton1 = new FunctionKeyButton(); functionKeyButton1.FunctionKey = Keys.F1; functionKeyButton1.Text = "ヘルプ"; FunctionKeyButton functionKeyButton2 = new FunctionKeyButton(); functionKeyButton2.FunctionKey = Keys.F2; functionKeyButton2.Text = "参照"; FunctionKeyButton functionKeyButton3 = new FunctionKeyButton(); functionKeyButton3.FunctionKey = Keys.F4; functionKeyButton3.Text = "戻る"; FunctionKeyButton functionKeyButton4 = new FunctionKeyButton(); functionKeyButton4.FunctionKey = Keys.F5; functionKeyButton4.Text = "検索"; FunctionKeyButton functionKeyButton5 = new FunctionKeyButton(); functionKeyButton5.FunctionKey = Keys.F12; functionKeyButton5.Text = "更新"; gcFunctionKey1.FunctionKeyButtons.AddRange(new FunctionKeyButton[] { functionKeyButton1, functionKeyButton2, functionKeyButton3, functionKeyButton4, functionKeyButton5}); FunctionKeyButton functionKeyButton6 = new FunctionKeyButton(); functionKeyButton6.FunctionKey = Keys.Control | Keys.Down; functionKeyButton6.Text = "前のページ"; FunctionKeyButton functionKeyButton7 = new FunctionKeyButton(); functionKeyButton7.FunctionKey = Keys.Control | Keys.Up; functionKeyButton7.Text = "次のページ"; gcFunctionKey1.FunctionKeyButtons.AddRange(new FunctionKeyButton[] { functionKeyButton6, functionKeyButton7}); FunctionKeyButton functionKeyButton8 = new FunctionKeyButton(); functionKeyButton8.FunctionKey = Keys.Shift | Keys.A; functionKeyButton8.Text = "全件選択"; gcFunctionKey1.FunctionKeyButtons.Add(functionKeyButton8);
![](images/GcFunctionKey.CombinationKeyDisplayModeDynamic1.png)
(図)CombinationKeyDisplayMode プロパティがDynamic の場合の通常時
![](images/GcFunctionKey.CombinationKeyDisplayModeDynamic2.png)
(図)CombinationKeyDisplayMode プロパティがDynamic の場合のControlキー押下時
![](images/GcFunctionKey.CombinationKeyDisplayModeDynamic3.png)
(図)CombinationKeyDisplayMode プロパティがDynamic の場合のShiftキー押下時
![](images/GcFunctionKey.CombinationKeyDisplayModeAlways1.png)
(図)CombinationKeyDisplayMode プロパティがAlways の場合
また、Sorted プロパティを True に設定すると、ファンクションキーボタンに追加されたボタンがソートされた状態で表示されます。
クラシックスタイルの適用
GcFunctionKey コントロールの描画スタイルを、Windows クラシックのようなスタイルに設定することができます。描画スタイルをクラシックスタイルに設定するには、スマートタグで「クラシックスタイルを使用する」をチェックします。
![](images/GcFunctionKey.ClassicStyle1.png)
![](images/GcFunctionKey.ClassicStyle2.png)
「クラシックスタイルを使用する」をチェックした場合、「描画スタイル」(RenderMode プロパティ)が Custom に設定されます。チェックを外すと、デフォルト値の ManagedRenderMode にリセットされます。また、チェックした後、「描画スタイル」(RenderMode プロパティ)をほかの値に指定すると、「クラシックスタイルを使用する」のチェックは外されます。
また、下記のコードを記述することでも設定が可能です。
![](images/GcFunctionKey.ClassicStyle1.png)
![](images/GcFunctionKey.ClassicStyle2.png)
「クラシックスタイルを使用する」をチェックした場合、「描画スタイル」(RenderMode プロパティ)が Custom に設定されます。チェックを外すと、デフォルト値の ManagedRenderMode にリセットされます。また、チェックした後、「描画スタイル」(RenderMode プロパティ)をほかの値に指定すると、「クラシックスタイルを使用する」のチェックは外されます。
また、下記のコードを記述することでも設定が可能です。
GcFunctionKey1.Renderer = New GrapeCity.Win.Bars.ToolStripClassicRenderer
gcFunctionKey1.Renderer = new GrapeCity.Win.Bars.ToolStripClassicRenderer;
ショートカットのソース
FunctionKeySource プロパティを使って GcFunctionKey コントロールに外部コントロールのショートカット設定を読み込むことができます。指定できるコントロールは、MenuStrip とContextMenuStrip コントロールの2種類です。
![](images/GcFunctionKey.FunctionKeySource1.png)
MenuStrip を指定した場合、その MenuStrip のショートカット設定が GcFunctionKey コントロールの FunctionKeyButton に表示されます。
ContextMenuStrip を指定した場合はフォーカスがその ContextMenuStrip のオーナーコントロールに移動したとき、ContextMenuStrip のショートカット設定が GcFunctionKey コントロールの FunctionKeyButton に表示されます。
![](images/GcFunctionKey.FunctionKeySource2.png)
![](images/GcFunctionKey.FunctionKeySource1.png)
MenuStrip を指定した場合、その MenuStrip のショートカット設定が GcFunctionKey コントロールの FunctionKeyButton に表示されます。
ContextMenuStrip を指定した場合はフォーカスがその ContextMenuStrip のオーナーコントロールに移動したとき、ContextMenuStrip のショートカット設定が GcFunctionKey コントロールの FunctionKeyButton に表示されます。
![](images/GcFunctionKey.FunctionKeySource2.png)
' MenuStrip と ContextMenuStrip を GcFunctionKeyのソースに指定します。 GcFunctionKey1.FunctionKeySource = New Object() {MenuStrip1, ContextMenuStrip1}
// MenuStrip と ContextMenuStrip を GcFunctionKeyのソースに指定します。 gcFunctionKey1.FunctionKeySource = new object[] {menuStrip1, contextMenuStrip1};
ToolStripContainer に埋め込む
.NET Framework標準のMenuStripやToolStripのように、GcFunctionKeyコントロールもToolStripContainerに埋め込むことができます。MenuStripやToolStripと同様に、デザイン画面でGcFunctionKey コントロールをフォームの上端、右端、下端、左端へ配置することが可能です。
GcFunctionKey コントロールの配置は、スマートタグから「ToolStripContainer に埋め込む」を選択するか、下記のようなコードで実現します。
GcFunctionKey コントロールの配置は、スマートタグから「ToolStripContainer に埋め込む」を選択するか、下記のようなコードで実現します。
ToolStripContainer1.TopToolStripPanel.Controls.Add(GcFunctionKey1)
toolStripContainer1.TopToolStripPanel.Controls.Add(gcFunctionKey1);