GrapeCity PlusPak for Windows Forms 11.0J
ファンクションキーボタンのカスタマイズ

GcFunctionKeyコントロールでは、ボタンに画像を表示したり、ボタン上にマウスポインタが置かれたときにツールチップを表示したりすることも可能です。ここでは、個々のボタンに割り当てられる機能について説明します。

画像を設定する
ファンクションキーボタンに追加した、ファンクションキーのボタンは、FunctionKeyButtonオブジェクトを使用して設定します。

DisplayStyle プロパティで画像を表示するように設定されている場合、画像をカスタマイズすることができます。GcFunctionKey コントロールには、独自のボタン画像が用意されており、デフォルトの状態では追加するキーに従い、下記のような画像が表示されます。


(図)デフォルトのボタン画像

デフォルトのイメージは、ボタンの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:クリア";


任意の画像をボタンに設定するには、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);

ツールチップの表示
FunctionKeyButton クラスの ToolTipText プロパティに文字列を設定し、GcFunctionKey コントロールの ShowItemToolTips プロパティを True にすると、そのファンクションキーボタンにマウスポインタが置かれたときに、ツールチップ(ToolTipText プロパティで設定した文字列)を表示することができます。

ファンクションキーボタンの表示
CombinationKeyDisplayModeプロパティは、ファンクションキーボタンに追加されたボタンの表示モードを設定します。CombinationKeyDisplayMode.Dynamic に設定されている場合、ファンクションキーボタンの表示は修飾子(Ctrl、Shift、Altキー)によってフィルタされます。例えば、ファンクションキーボタンに[Shift]+[A]キーが設定されていると、[Shift]キー押下時のみこのキーボタンが表示されます。CombinationKeyDisplayMode.Always に設定されている場合は、修飾子によるフィルタは行われず、表示可能なファンクショントキーボタンはすべて表示されます。

次のサンプルコードで追加したファンクションキーボタンは表示モードによって以下のように表示されます。
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);


(図)CombinationKeyDisplayMode プロパティがDynamic の場合の通常時

(図)CombinationKeyDisplayMode プロパティがDynamic の場合のControlキー押下時

(図)CombinationKeyDisplayMode プロパティがDynamic の場合のShiftキー押下時



(図)CombinationKeyDisplayMode プロパティがAlways の場合

また、Sorted プロパティを True に設定すると、ファンクションキーボタンに追加されたボタンがソートされた状態で表示されます。
クラシックスタイルの適用
GcFunctionKey コントロールの描画スタイルを、Windows クラシックのようなスタイルに設定することができます。描画スタイルをクラシックスタイルに設定するには、スマートタグで「クラシックスタイルを使用する」をチェックします。





「クラシックスタイルを使用する」をチェックした場合、「描画スタイル」(RenderMode プロパティ)が Custom に設定されます。チェックを外すと、デフォルト値の ManagedRenderMode にリセットされます。また、チェックした後、「描画スタイル」(RenderMode プロパティ)をほかの値に指定すると、「クラシックスタイルを使用する」のチェックは外されます。

また、下記のコードを記述することでも設定が可能です。

GcFunctionKey1.Renderer = New GrapeCity.Win.Bars.ToolStripClassicRenderer
gcFunctionKey1.Renderer = new GrapeCity.Win.Bars.ToolStripClassicRenderer;

ショートカットのソース
FunctionKeySource プロパティを使って GcFunctionKey コントロールに外部コントロールのショートカット設定を読み込むことができます。指定できるコントロールは、MenuStrip とContextMenuStrip コントロールの2種類です。



MenuStrip を指定した場合、その MenuStrip のショートカット設定が GcFunctionKey コントロールの FunctionKeyButton に表示されます。
ContextMenuStrip を指定した場合はフォーカスがその ContextMenuStrip のオーナーコントロールに移動したとき、ContextMenuStrip のショートカット設定が GcFunctionKey コントロールの FunctionKeyButton に表示されます。



' 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 に埋め込む」を選択するか、下記のようなコードで実現します。

ToolStripContainer1.TopToolStripPanel.Controls.Add(GcFunctionKey1)
toolStripContainer1.TopToolStripPanel.Controls.Add(gcFunctionKey1);
関連トピック

 

 


© 2008 GrapeCity inc. All rights reserved.