'宣言 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; }