作成日: 2020/02/07 最終更新日: 2020/02/07
文書種別
使用方法
詳細
リボンのレイアウトの多くは、ビジュアルデザイナを使用して作成できますが、リボン上の項目に特定の機能を実行させるには、イベントを使用したコーディングが必要になります。
なお実行時にレイアウトの保存・読み込みを行う場合、読み込み時にはリボン上の各項目のインスタンスが一旦クリアされた後、各要素の新しいインスタンスが再生成されます。また、それまで設定されていたイベントがすべて解除されることにご注意ください。
例えば、デザイン時にリボンボタン等のレイアウトを設計し、各RibbonItemのイベントハンドラをコードで追加したのち、SaveメソッドでXMLレイアウトファイルとして保存する場合を考えます。
このレイアウトファイルを、そのままLoadメソッドでC1Ribbonコントロールに読み込みんでも、先に設定したRibbonItemのイベントは発生しません。これは、上述したようにリボンボタン等のインスタンスが再生成され、各RibbonItemのイベントハンドラが解除されたためです。この場合、レイアウトの読み込み後に、明示的にRibbonItemのイベントハンドラを再追加してください。
◎サンプルコード(VB)
なお実行時にレイアウトの保存・読み込みを行う場合、読み込み時にはリボン上の各項目のインスタンスが一旦クリアされた後、各要素の新しいインスタンスが再生成されます。また、それまで設定されていたイベントがすべて解除されることにご注意ください。
例えば、デザイン時にリボンボタン等のレイアウトを設計し、各RibbonItemのイベントハンドラをコードで追加したのち、SaveメソッドでXMLレイアウトファイルとして保存する場合を考えます。
このレイアウトファイルを、そのままLoadメソッドでC1Ribbonコントロールに読み込みんでも、先に設定したRibbonItemのイベントは発生しません。これは、上述したようにリボンボタン等のインスタンスが再生成され、各RibbonItemのイベントハンドラが解除されたためです。この場合、レイアウトの読み込み後に、明示的にRibbonItemのイベントハンドラを再追加してください。
◎サンプルコード(VB)
C1Ribbon1.Load(filename)
Dim rb As RibbonButton
Dim i As Integer
For i = 0 To C1Ribbon1.Tabs(0).Groups(0).Items.Count - 1
rb = C1Ribbon1.Tabs(0).Groups(0).Items(i)
If i = 0 Then
AddHandler rb.Click, AddressOf RibbonButton1_Click
ElseIf i = 1 Then
AddHandler rb.Click, AddressOf RibbonButton2_Click
Else
・・・(省略)
End If
Next
◎サンプルコード(C#) c1Ribbon1.Load(filename);
RibbonButton rb;
for (int i = 0; (i <= (c1Ribbon1.Tabs[0].Groups[0].Items.Count - 1)); i++)
{
rb = (RibbonButton)c1Ribbon1.Tabs[0].Groups[0].Items[i];
if ((i == 0))
{
rb.Click += new System.EventHandler(ribbonButton1_Click);
}
else if ((i == 1))
{
rb.Click += new System.EventHandler(ribbonButton2_Click);
}
else
{
}
}
旧文書番号
84922