'宣言 Public Class UltraStatusBar Inherits Infragistics.Win.UltraControlBase Implements Infragistics.Win.AppStyling.ISupportAppStyling, Infragistics.Win.IImageListProvider, Infragistics.Win.IStatusBar, Infragistics.Win.IUIElementImageAndTextProvider, Infragistics.Win.IUIElementProvider, Infragistics.Win.IUltraControl, Infragistics.Win.IUltraControlElement, Infragistics.Win.Notifications.INotificationBadgeSettingsOwner, Infragistics.Win.Touch.ISupportTouchMetrics, Infragistics.Win.UIAutomation.IProvideUIAutomation, Infragistics.Win.UltraWinDock.IDockingArea
public class UltraStatusBar : Infragistics.Win.UltraControlBase, Infragistics.Win.AppStyling.ISupportAppStyling, Infragistics.Win.IImageListProvider, Infragistics.Win.IStatusBar, Infragistics.Win.IUIElementImageAndTextProvider, Infragistics.Win.IUIElementProvider, Infragistics.Win.IUltraControl, Infragistics.Win.IUltraControlElement, Infragistics.Win.Notifications.INotificationBadgeSettingsOwner, Infragistics.Win.Touch.ISupportTouchMetrics, Infragistics.Win.UIAutomation.IProvideUIAutomation, Infragistics.Win.UltraWinDock.IDockingArea
UltraStatusBar は、UltraStatusPanel オブジェクトのコレクションを含む拡張された StatusBar コントロールです。UltraStatusPanelは13種類のパネルスタイルをサポートしています。完全なリストについては、UltraStatusPanel の UltraStatusPanel.Style プロパティを参照してください。パネルは PanelsVisible プロパティを変更して非表示にしたり、UltraStatusPanel.Visible プロパティを介してすべてのパネルを非表示にできます。
パネルは 4 つの異なるサイズ モードをサポートします。UltraStatusPanel.SizingMode が Adjustable に設定された場合、パネルの右端をドラッグすることでランタイムまたはデザイン時に変更することもできます。ResizeStyleに基づき、パネルはドラッグ操作中またはマウスを放した後にサイズ変更されます。BeforeDragResize および AfterDragResize イベントは、ドラッグ操作の発生前後にそれぞれ発生します。パネルの同じ領域をダブルクリックすると、パネルの幅 (Style がオートサイズをサポートする場合) は UltraStatusPanel.AutoSizeWidth に設定されます。
パネルの枠は、BorderStylePanel プロパティを介してすべてのパネルまたはパネルの UltraStatusPanel.BorderStyle プロパティを介して個々のパネルで制御されます。パネル ドラッグ イベントと同様、前後のイベント (BeforeAutoSizePanel および AfterAutoSizePanel) は、パネルの幅が変更される前に発生します。
UltraStatusBar はサイズ グリップも表示します。デフォルトでは、サイズ グリップはステータス バーがフォームの下にドックされてフォームがサイズ変更される場合に限って表示されます。サイズ グリップの可視性は、SizeGripVisible プロパティを介して変更できます。コンテナーがサイズ操作を開始しようとすると、BeforeDragSizeGrip イベントが発生します。
Imports Infragistics.Win Imports Infragistics.Win.UltraWinStatusBar Imports Infragistics.Win.UltraWinProgressBar Private Sub InitializeStatusBar() With Me.ultraStatusBar1 ' Note: Under windows XP if the 'SupportThemes' property ' is left is True (its default setting) then some of ' the explicit appearance, border style and button ' style properties are ignored. .SupportThemes = False ' Set the border style for the status bar control .BorderStyle = UIElementBorderStyle.InsetSoft ' Set the default border style for panels .BorderStylePanel = UIElementBorderStyle.InsetSoft ' Set the style for button type panels .ButtonStyle = UIElementButtonStyle.PopupSoftBorderless ' Set the # of pixels between panels .InterPanelSpacing = 3 ' Specify the margins inside the status bar control. .Padding = New UIElementMargins(2, 1, 1, 2) ' Set some apperance setting for the control .Appearance.BackGradientStyle = GradientStyle.VerticalBump .Appearance.BackColor = Color.Blue .Appearance.BackColor2 = Color.Aqua ' Set the default appearance for panels .PanelAppearance.BackColor = Color.Transparent ' Set some additional properties on the control .PanelsVisible = True .ResizeStyle = ResizeStyle.Immediate .ScaledImageSize = New Size(8, 8) .ScaleImages = ScaleImage.OnlyWhenNeeded .ShowToolTips = True .SizeGripVisible = DefaultableBoolean.True .UseMnemonic = True .WrapText = True End With ' Add some panels to the collection Dim panel As UltraStatusPanel ' Add a simple text panel panel = Me.ultraStatusBar1.Panels.Add("P1", PanelStyle.Text) panel.Text = "some text" ' Add an auto status text style panel. ' Note: At design time a 'StatusBarText' extender property ' is added to each control and menu on the form. ' At runtime, when the mouse is over the control the text ' specified for this property will display in the AutoStatusText ' panel. ' Also a panel of this type will automatically show the ' tooltip for tools on an UltraToolbarsManager toolbar or menu. panel = Me.ultraStatusBar1.Panels.Add("P2", PanelStyle.AutoStatusText) panel.SizingMode = PanelSizingMode.Spring ' You can also set the 'StatusBarText' extender property in ' code by calling the 'SetStatusBarText' method as illustrated below. Me.ultraStatusBar1.SetStatusBarText(Me.button1, "Btn 1 action desc...") Me.ultraStatusBar1.SetStatusBarText(Me.button2, "Btn 2 action desc...") ' Add a character position style panel panel = Me.ultraStatusBar1.Panels.Add("P3", PanelStyle.CharacterPosition) panel.Control = Me.richTextBox1 panel.CharacterPositionFormat = "Ln: [Line], Char: [Char]" panel.SizingMode = PanelSizingMode.Fixed panel.BorderStyle = UIElementBorderStyle.None panel.Width = 100 ' Add a cursor position style panel panel = Me.ultraStatusBar1.Panels.Add("P4", PanelStyle.CursorPosition) ' You must specify either the form or a control so that ' when the mouse is moved over that control the panel ' will be automatically updated. panel.Control = Me.richTextBox1 panel.CursorPositionFormat = "x: [X], y: [Y]" panel.SizingMode = PanelSizingMode.Automatic ' Add a button style panel panel = Me.ultraStatusBar1.Panels.Add("P5", PanelStyle.Button) panel.Text = "&End" panel.Appearance.TextHAlign = HAlign.Center panel.ToolTipText = "Scrolls to the end of the document" panel.Enabled = True ' Add a state button style panel panel = Me.ultraStatusBar1.Panels.Add("P6", PanelStyle.StateButton) panel.Text = "&Hex" panel.Checked = True ' Add a control container style panel panel = Me.ultraStatusBar1.Panels.Add("P7", PanelStyle.ControlContainer) panel.SizingMode = PanelSizingMode.Adjustable panel.MinWidth = 50 panel.Control = Me.textBox1 panel.Padding = New Size(3, 6) ' Add a date style panel panel = Me.ultraStatusBar1.Panels.Add("P8", PanelStyle.Date) panel.DateTimeFormat = "MMM-dd-yyyy" ' Add a time style panel panel = Me.ultraStatusBar1.Panels.Add("P9", PanelStyle.Time) panel.DateTimeFormat = "hh:mm:ss tt" ' Add a key state style panel panel = Me.ultraStatusBar1.Panels.Add("P10", PanelStyle.KeyState) panel.KeyStateInfo.DisplayStyle = KeyStateDisplayStyle.ChangeText panel.KeyStateInfo.Key = KeyState.InsertMode panel.KeyStateInfo.OffText = "Ovr" panel.KeyStateInfo.OnText = "Insrt" ' Add a marquee style panel panel = Me.ultraStatusBar1.Panels.Add("P11", PanelStyle.Marquee) panel.Text = "marquee string" panel.MarqueeInfo.Delay = 50 panel.MarqueeInfo.MarqueeStyle = MarqueeStyle.Bouncing panel.MarqueeInfo.MarqueeDirection = Direction.LeftToRight panel.MarqueeInfo.MarqueeScrollAmount = 2 panel.MarqueeInfo.Start() ' Add a progress style panel panel = Me.ultraStatusBar1.Panels.Add("P12", PanelStyle.Progress) With panel.ProgressBarInfo .Appearance.ForeColor = Color.Red .FillAppearance.BackColor = Color.Blue .FillAppearance.ForeColor = Color.Yellow .Minimum = 25 .Maximum = 85 .Value = 50 .ShowLabel = True .Style = ProgressBarStyle.SegmentedPartial .PercentFormat = "P2" .Label = _ "Done: " + _ UltraProgressBar.LABEL_FORMATTED + _ "Remaining: " + _ UltraProgressBar.LABEL_FORMATTED_REMAINING End With ' There is also an 'MDIList' style tool for use ' on MDI parent forms. End Sub
using System.Diagnostics; using Infragistics.Win; using Infragistics.Win.UltraWinStatusBar; using Infragistics.Win.UltraWinProgressBar; private void InitializeStatusBar() { // Note: Under windows XP if the 'SupportThemes' property // is left is True (its default setting) then some of // the explicit appearance, border style and button // style properties are ignored. this.ultraStatusBar1.SupportThemes = false; // Set the border style for the status bar control this.ultraStatusBar1.BorderStyle = UIElementBorderStyle.InsetSoft; // Set the default border style for panels this.ultraStatusBar1.BorderStylePanel = UIElementBorderStyle.InsetSoft; // Set the style for button type panels this.ultraStatusBar1.ButtonStyle = UIElementButtonStyle.PopupSoftBorderless; // Set the # of pixels between panels this.ultraStatusBar1.InterPanelSpacing = 3; // Specify the margins inside the status bar control. this.ultraStatusBar1.Padding = new UIElementMargins(2, 1,1,2); // Set some apperance setting for the control this.ultraStatusBar1.Appearance.BackGradientStyle = GradientStyle.VerticalBump; this.ultraStatusBar1.Appearance.BackColor = Color.Blue; this.ultraStatusBar1.Appearance.BackColor2 = Color.Aqua; // Set the default appearance for panels this.ultraStatusBar1.PanelAppearance.BackColor = Color.Transparent; // Set some additional properties on the control this.ultraStatusBar1.PanelsVisible = true; this.ultraStatusBar1.ResizeStyle = ResizeStyle.Immediate; this.ultraStatusBar1.ScaledImageSize = new Size(8,8); this.ultraStatusBar1.ScaleImages = ScaleImage.OnlyWhenNeeded; this.ultraStatusBar1.ShowToolTips = true; this.ultraStatusBar1.SizeGripVisible = DefaultableBoolean.True; this.ultraStatusBar1.UseMnemonic = true; this.ultraStatusBar1.WrapText = true; // Add some panels to the collection UltraStatusPanel panel; // Add a simple text panel panel = this.ultraStatusBar1.Panels.Add("P1", PanelStyle.Text ); panel.Text = "some text"; // Add an auto status text style panel. // Note: At design time a 'StatusBarText' extender property // is added to each control and menu on the form. // At runtime, when the mouse is over the control the text // specified for this property will display in the AutoStatusText // panel. // Also a panel of this type will automatically show the // tooltip for tools on an UltraToolbarsManager toolbar or menu. panel = this.ultraStatusBar1.Panels.Add("P2", PanelStyle.AutoStatusText ); panel.SizingMode = PanelSizingMode.Spring; // You can also set the 'StatusBarText' extender property in // code by calling the 'SetStatusBarText' method as illustrated below. this.ultraStatusBar1.SetStatusBarText( this.button1, "Btn 1 action desc..."); this.ultraStatusBar1.SetStatusBarText( this.button2, "Btn 2 action desc..."); // Add a character position style panel panel = this.ultraStatusBar1.Panels.Add("P3", PanelStyle.CharacterPosition ); panel.Control = this.richTextBox1; panel.CharacterPositionFormat = "Ln: [Line], Char: [Char]"; panel.SizingMode = PanelSizingMode.Fixed; panel.BorderStyle = UIElementBorderStyle.None; panel.Width = 100; // Add a cursor position style panel panel = this.ultraStatusBar1.Panels.Add("P4", PanelStyle.CursorPosition ); // You must specify either the form or a control so that // when the mouse is moved over that control the panel // will be automatically updated. panel.Control = this.richTextBox1; panel.CursorPositionFormat = "x: [X], y: [Y]"; panel.SizingMode = PanelSizingMode.Automatic; // Add a button style panel panel = this.ultraStatusBar1.Panels.Add("P5", PanelStyle.Button ); panel.Text = "&End"; panel.Appearance.TextHAlign = HAlign.Center; panel.ToolTipText = "Scrolls to the end of the document"; panel.Enabled = true; // Add a state button style panel panel = this.ultraStatusBar1.Panels.Add("P6", PanelStyle.StateButton ); panel.Text = "&Hex"; panel.Checked = true; // Add a control container style panel panel = this.ultraStatusBar1.Panels.Add("P7", PanelStyle.ControlContainer ); panel.SizingMode = PanelSizingMode.Adjustable; panel.MinWidth = 50; panel.Control = this.textBox1; panel.Padding = new Size(3,6); // Add a date style panel panel = this.ultraStatusBar1.Panels.Add("P8", PanelStyle.Date ); panel.DateTimeFormat = "MMM-dd-yyyy"; // Add a time style panel panel = this.ultraStatusBar1.Panels.Add("P9", PanelStyle.Time ); panel.DateTimeFormat = "hh:mm:ss tt"; // Add a key state style panel panel = this.ultraStatusBar1.Panels.Add("P10", PanelStyle.KeyState ); panel.KeyStateInfo.DisplayStyle = KeyStateDisplayStyle.ChangeText; panel.KeyStateInfo.Key = KeyState.InsertMode; panel.KeyStateInfo.OffText = "Ovr"; panel.KeyStateInfo.OnText = "Insrt"; // Add a marquee style panel panel = this.ultraStatusBar1.Panels.Add("P11", PanelStyle.Marquee ); panel.Text = "some marquee string"; panel.MarqueeInfo.Delay = 50; panel.MarqueeInfo.MarqueeStyle = MarqueeStyle.Bouncing; panel.MarqueeInfo.MarqueeDirection = Direction.LeftToRight; panel.MarqueeInfo.MarqueeScrollAmount = 2; panel.MarqueeInfo.Start(); // Add a progress style panel panel = this.ultraStatusBar1.Panels.Add("P12", PanelStyle.Progress ); ProgressBarInfo pbi = panel.ProgressBarInfo; pbi.Appearance.ForeColor = Color.Red; pbi.FillAppearance.BackColor = Color.Blue; pbi.FillAppearance.ForeColor = Color.Yellow; pbi.Minimum = 0; pbi.Maximum = 100; pbi.ShowLabel = true; pbi.Style = ProgressBarStyle.SegmentedPartial; pbi.PercentFormat = "P2"; // Note: There are 10 different substitution string // constants defined by UltraProgressBar that are // prefixed by "LABEL_". The actual values are then // substituted for these constants to format the // label that is displayed in the panel. pbi.Label = "Done: " + UltraProgressBar.LABEL_FORMATTED + "Remaining: " + UltraProgressBar.LABEL_FORMATTED_REMAINING ); pbi.Value = 50; // There is also an 'MDIList' style tool for use // on MDI parent forms. }