'宣言 Public Class StateButtonTool Inherits ButtonTool Implements Infragistics.Shared.IKeyedSubObject, Infragistics.Shared.IKeyedSubObjectEx, Infragistics.Win.Notifications.INotificationBadgeProvider, Infragistics.Win.Notifications.INotificationBadgeSettingsOwner
public class StateButtonTool : ButtonTool, Infragistics.Shared.IKeyedSubObject, Infragistics.Shared.IKeyedSubObjectEx, Infragistics.Win.Notifications.INotificationBadgeProvider, Infragistics.Win.Notifications.INotificationBadgeSettingsOwner
メニュー上の StateButtonTool の表示は、MenuDisplayStyle を設定することによって制御でき、ツールバーまたはリボン グループ上の表示は、ToolbarDisplayStyle を設定することによって制御できます。
その状態を維持する単一のボタンとして機能することに加えて、StateButtonTool はその他の StateButtonTool インスタンスとともに、OptionSet または OptionSetKey を設定することによって、ラジオ ボタンとして機能することができます。StateButtonTool インスタンスのグループが同じ OptionSet に属している時には、常にチェックした(押した)状態にすることができるのはひとつだけです。StateButtonTool をチェックすると、同じ OptionSet のその他すべての StateButtonTools のチェックが解除されます。また、OptionSet.AllowAllUp プロパティが True の場合、OptionSet の現在チェックされている StateButtonTool のチェックを解除できます。
StateButtonTool のインスタンスが Checked 状態を変更した時を通知するには、StateButtonTool の ToolClick イベントを処理します。同じ Key を持つすべての StateButtonTools のインスタンスがその Checked 状態を変更した時に通知を受けるには、UltraToolbarsManager.ToolClick イベントを処理して、イベント引数に渡されるツールの Key をチェックします。
Imports System.Diagnostics Imports Infragistics.Win Imports Infragistics.Win.UltraWinToolbars Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' ---------------------------------------------------------------------------- ' 新しい StateButton ツールを作成します Dim stateButtonAlignLeft As New StateButtonTool("AlignLeft") Dim stateButtonAlignCenter As New StateButtonTool("AlignCenter") Dim stateButtonAlignRight As New StateButtonTool("AlignRight") ' メニューまたはツールバーに追加する前に、常に新しいツールを ' UltraToolbarManager のルート ツール コレクションに追加します Me.UltraToolbarsManager1.Tools.AddRange(New ToolBase() {stateButtonAlignLeft, stateButtonAlignCenter, stateButtonAlignRight}) ' ボタンの画像を指定します stateButtonAlignLeft.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Information.Handle) stateButtonAlignCenter.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Exclamation.Handle) stateButtonAlignRight.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.WinLogo.Handle) ' ボタンで画像を表示するために、メニューの表示スタイルを設定します stateButtonAlignLeft.MenuDisplayStyle = StateButtonMenuDisplayStyle.DisplayToolImage stateButtonAlignCenter.MenuDisplayStyle = StateButtonMenuDisplayStyle.DisplayToolImage stateButtonAlignRight.MenuDisplayStyle = StateButtonMenuDisplayStyle.DisplayToolImage ' ---------------------------------------------------------------------------- ' 3 つの状態ボタンの状態 (チェックまたはチェック解除) を ' 構成する OptionSet オブジェクトを作成します Dim index As Integer = Me.UltraToolbarsManager1.OptionSets.Add(False, "MyAlignOptionSet") ' オプション セットに 3 つの状態ボタンを追加します Me.UltraToolbarsManager1.OptionSets(index).Tools.AddToolRange(New String() {"AlignLeft", "AlignCenter", "AlignRight"}) ' ---------------------------------------------------------------------------- ' 'AlignLeft' ボタンをチェックします stateButtonAlignLeft.Checked = True ' ---------------------------------------------------------------------------- ' ツールバーを作成し、状態ボタンをツールバーに追加します Me.UltraToolbarsManager1.Toolbars.AddToolbar("MyAlignmentToolbar") ' ツールバーをフォームの下にドッキングします Me.UltraToolbarsManager1.Toolbars("MyAlignmentToolbar").DockedPosition = DockedPosition.Bottom ' ツールバーに状態ボタンを追加します Me.UltraToolbarsManager1.Toolbars("MyAlignmentToolbar").Tools.AddToolRange(New String() {"AlignLeft", "AlignCenter", "AlignRight"}) ' 最初のボタンの前にセパレーターを配置するには、最初のボタンの IsFirstInGroup プロパティを設定します Me.UltraToolbarsManager1.Toolbars("MyAlignmentToolbar").Tools("AlignLeft").InstanceProps.IsFirstInGroup = True End Sub
using System.Diagnostics; using Infragistics.Win; using Infragistics.Win.UltraWinToolbars; private void button2_Click(object sender, System.EventArgs e) { // ---------------------------------------------------------------------------- // 新しい StateButton ツールを作成します StateButtonTool stateButtonAlignLeft = new StateButtonTool("AlignLeft"); StateButtonTool stateButtonAlignCenter = new StateButtonTool("AlignCenter"); StateButtonTool stateButtonAlignRight = new StateButtonTool("AlignRight"); // メニューまたはツールバーに追加する前に、常に新しいツールを // UltraToolbarManager のルート ツール コレクションに追加します this.ultraToolbarsManager1.Tools.AddRange(new ToolBase [] {stateButtonAlignLeft, stateButtonAlignCenter, stateButtonAlignRight} ); // ボタンの画像を指定します stateButtonAlignLeft.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Information.Handle); stateButtonAlignCenter.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.Exclamation.Handle); stateButtonAlignRight.SharedProps.AppearancesSmall.Appearance.Image = Bitmap.FromHicon(SystemIcons.WinLogo.Handle); // ボタンで画像を表示するために、メニューの表示スタイルを設定します stateButtonAlignLeft.MenuDisplayStyle = StateButtonMenuDisplayStyle.DisplayToolImage; stateButtonAlignCenter.MenuDisplayStyle = StateButtonMenuDisplayStyle.DisplayToolImage; stateButtonAlignRight.MenuDisplayStyle = StateButtonMenuDisplayStyle.DisplayToolImage; // ---------------------------------------------------------------------------- // 3 つの状態ボタンの状態 (チェックまたはチェック解除) を // 構成する OptionSet オブジェクトを作成します int index = this.ultraToolbarsManager1.OptionSets.Add(false, "MyAlignOptionSet"); // オプション セットに 3 つの状態ボタンを追加します this.ultraToolbarsManager1.OptionSets[index].Tools.AddToolRange( new string [] {"AlignLeft", "AlignCenter", "AlignRight"} ); // ---------------------------------------------------------------------------- // 'AlignLeft' ボタンをチェックします stateButtonAlignLeft.Checked = true; // ---------------------------------------------------------------------------- // ツールバーを作成し、状態ボタンをツールバーに追加します this.ultraToolbarsManager1.Toolbars.AddToolbar("MyAlignmentToolbar"); // ツールバーをフォームの下にドッキングします this.ultraToolbarsManager1.Toolbars["MyAlignmentToolbar"].DockedPosition = DockedPosition.Bottom; // ツールバーに状態ボタンを追加します this.ultraToolbarsManager1.Toolbars["MyAlignmentToolbar"].Tools.AddToolRange(new string [] {"AlignLeft", "AlignCenter", "AlignRight"}); // 最初のボタンの前にセパレーターを配置するには、最初のボタンの IsFirstInGroup プロパティを設定します this.ultraToolbarsManager1.Toolbars["MyAlignmentToolbar"].Tools["AlignLeft"].InstanceProps.IsFirstInGroup = true; }