PowerTools InputMan for Windows Forms 8.0J > InputManの使い方 > 継承コントロールのデザイン機能 > デフォルト値を設定する方法 |
デフォルト値を設定する方法で継承コントロールを作成するには、機能毎に対象のメソッドをオーバーライドします。
デフォルト値を設定する方法についての特長や注意点については以下のとおりです。
基本の継承コントロールを作成する場合に向いています。基底クラスで基本的なフィールド、サイドボタンおよびショートカットを設定し、派生クラスで個別に変更する場合にはこの方法が適切です。
コントロールにデフォルト値設定可能な機能がコントロール毎に異なります。設定可能な機能については、下記の一覧を参考にしてください。
コントロールの種類 | 入力書式 | 表示書式 | サイドボタン | ショートカット機能 | その他 |
---|---|---|---|---|---|
テキストコントロール | |||||
マスクコントロール | |||||
キャラクタボックスコントロール | |||||
日付時刻コントロール | |||||
日付コントロール | |||||
時刻コントロール | |||||
タイムスパンコントロール | |||||
数値コントロール | |||||
コンボコントロール | |||||
マスクコンボコントロール | |||||
リストコントロール | |||||
リッチテキストコントロール | ツールバーを設定できます | ||||
郵便番号コントロール | |||||
住所コントロール |
デフォルトの機能の設定は、機能毎に対象のメソッドをオーバーライドすることで実現します。以下は日付時刻コントロールを継承したコントロールの実装例です。
Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Drawing Imports System.Windows.Forms Imports GrapeCity.Win.Editors Imports GrapeCity.Win.Editors.Fields Namespace MyGcDateTime <LicenseProviderAttribute(GetType(LicenseProvider))> _ Public Class MyGcDateTime3 Inherits GcDateTime Public Sub New() MyBase.New() initializeMyControl() End Sub Public Sub New(ByVal container As IContainer) MyBase.New(container) initializeMyControl() End Sub Private Sub initializeMyControl() ' ' コントロールを初期化します。 ' Me.FlatStyle = FlatStyleEx.Flat End Sub Protected Overloads Overrides Function GetDefaultFields() As DateField() ' ' デフォルトの入力フィールドを設定します。 ' Return DateFieldsBuilder.BuildFields("yyyy/MM/dd") End Function Protected Overloads Overrides Function GetDefaultDisplayFields() As DateDisplayField() ' ' デフォルトの表示フィールドを設定します。 ' Return DateDisplayFieldsBuilder.BuildFields("yyyy/M/d") End Function Protected Overloads Overrides Function GetDefaultSideButtonTypes() As List(Of Type) ' ' デフォルトのサイドボタンを設定します。 ' Dim defaultSideButtonTypes As New List(Of Type)() defaultSideButtonTypes.Add(GetType(DropDownButton)) defaultSideButtonTypes.Add(GetType(SpinButton)) Return defaultSideButtonTypes ' ' 何も設定しない場合には、Nothingを返します。 ' Return Nothing ' End Function Protected Overloads Overrides Sub InitializeDefaultSideButtons(ByVal defaultSideButtons As SideButtonBase()) ' ' デフォルトのサイドボタンを初期化します。 ' defaultSideButtons(0).BackColor = Color.Red defaultSideButtons(1).BackColor = Color.Blue End Sub Protected Overloads Overrides Function GetDefaultShortcuts() As Dictionary(Of Keys, String) ' ' デフォルトのショートカット機能を設定します。 ' Dim defaultShortcuts As New Dictionary(Of Keys, String)() defaultShortcuts.Add(Keys.Enter, "NextControl") Return defaultShortcuts ' ' 何も設定しない場合には、Nothingを返します。 ' Return Nothing ' End Function End Class End Namespace
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using GrapeCity.Win.Editors; using GrapeCity.Win.Editors.Fields; namespace MyGcDateTime { [LicenseProviderAttribute(typeof(LicenseProvider))] public class MyGcDateTime3 : GcDateTime { public MyGcDateTime3() : base() { initializeMyControl(); } public MyGcDateTime3(IContainer container) : base(container) { initializeMyControl(); } private void initializeMyControl() { // // コントロールを初期化します。 // this.FlatStyle = FlatStyleEx.Flat; } protected override DateField[] GetDefaultFields() { // // デフォルトの入力フィールドを設定します。 // return DateFieldsBuilder.BuildFields("yyyy/MM/dd"); } protected override DateDisplayField[] GetDefaultDisplayFields() { // // デフォルトの表示フィールドを設定します。 // return DateDisplayFieldsBuilder.BuildFields("yyyy/M/d"); } protected override List<Type> GetDefaultSideButtonTypes() { // // デフォルトのサイドボタンを設定します。 // List<Type> defaultSideButtonTypes = new List<Type>(); defaultSideButtonTypes.Add(typeof(DropDownButton)); defaultSideButtonTypes.Add(typeof(SpinButton)); return defaultSideButtonTypes; // // 何も設定しない場合には、nullを返します。 // return null; // } protected override void InitializeDefaultSideButtons(SideButtonBase[] defaultSideButtons) { // // デフォルトのサイドボタンを初期化します。 // defaultSideButtons[0].BackColor = Color.Red; defaultSideButtons[1].BackColor = Color.Blue; } protected override Dictionary<Keys, string> GetDefaultShortcuts() { // // デフォルトのショートカット機能を設定します。 // Dictionary<Keys, string> defaultShortcuts = new Dictionary<Keys, string>(); defaultShortcuts.Add(Keys.Enter, "NextControl"); return defaultShortcuts; // // 何も設定しない場合には、nullを返します。 // return null; // } } }
リッチテキストコントロールでは、デフォルトの設定としてツールバーを設定することができます。
下記のコードは太字、背景色、前景色、貼り付け、開く、名前を付けて保存の5つのボタンをデフォルトとして設定するサンプルコードです。
Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Drawing Imports System.Windows.Forms Imports GrapeCity.Win.Editors Namespace MyGcRichTextBox <LicenseProviderAttribute(GetType(LicenseProvider))> _ Public Class MyGcRichTextBox Inherits GcRichTextBox Public Sub New() MyBase.New() End Sub Public Sub New(ByVal component As IContainer) MyBase.New(component) End Sub Protected Overloads Overrides Function GetDefaultShortcuts() As Dictionary(Of Keys, String) ' ' デフォルトのショートカット機能を設定します。 ' Return Nothing End Function Protected Overloads Overrides Function GetDefaultToolBarItemTypes() As List(Of Type) ' ' デフォルトのツールバーを設定します。 ' Dim defaultToolBarItemTypes As New List(Of Type)() defaultToolBarItemTypes.AddRange(New Type() {GetType(ToolStripActionButton), GetType(ToolStripBackColorSplitButton), GetType(ToolStripForeColorSplitButton), GetType(ToolStripActionButton), GetType(ToolStripActionButton), GetType(ToolStripActionButton)}) Return defaultToolBarItemTypes End Function Protected Overloads Overrides Sub InitializeToolBarItems(ByVal toolStripItems As ToolStripItem()) ' ' デフォルトのツールバーを初期化します。 ' ' ' toolStripActionButton1 ' Dim toolStripActionButton1 As ToolStripActionButton = TryCast(toolStripItems(0), ToolStripActionButton) toolStripActionButton1.ButtonAction = ToolStripButtonAction.Bold toolStripActionButton1.DisplayStyle = ToolStripItemDisplayStyle.Image toolStripActionButton1.Image = Bitmap.FromStream(GetType(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.Bold.png")) toolStripActionButton1.Size = New Size(23, 22) toolStripActionButton1.ToolTipText = "Bold" ' ' toolStripBackColorSplitButton1 ' Dim toolStripBackColorSplitButton1 As ToolStripBackColorSplitButton = TryCast(toolStripItems(1), ToolStripBackColorSplitButton) toolStripBackColorSplitButton1.DisplayStyle = ToolStripItemDisplayStyle.Image toolStripBackColorSplitButton1.Image = Bitmap.FromStream(GetType(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.BackColor.bmp")) toolStripBackColorSplitButton1.Size = New Size(32, 22) toolStripBackColorSplitButton1.ToolTipText = "Back Color" ' ' toolStripForeColorSplitButton1 ' Dim toolStripForeColorSplitButton1 As ToolStripForeColorSplitButton = TryCast(toolStripItems(2), ToolStripForeColorSplitButton) toolStripForeColorSplitButton1.DisplayStyle = ToolStripItemDisplayStyle.Image toolStripForeColorSplitButton1.Image = Bitmap.FromStream(GetType(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.ForeColor.bmp")) toolStripForeColorSplitButton1.Size = New Size(32, 22) toolStripForeColorSplitButton1.ToolTipText = "Fore Color" ' ' toolStripActionButton2 ' Dim toolStripActionButton2 As ToolStripActionButton = TryCast(toolStripItems(3), ToolStripActionButton) toolStripActionButton2.ButtonAction = ToolStripButtonAction.Paste toolStripActionButton2.DisplayStyle = ToolStripItemDisplayStyle.Image toolStripActionButton2.Image = Bitmap.FromStream(GetType(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.Paste.png")) toolStripActionButton2.Size = New Size(23, 22) toolStripActionButton2.ToolTipText = "Paste" ' ' toolStripActionButton3 ' Dim toolStripActionButton3 As ToolStripActionButton = TryCast(toolStripItems(4), ToolStripActionButton) toolStripActionButton3.ButtonAction = ToolStripButtonAction.LoadFile toolStripActionButton3.DisplayStyle = ToolStripItemDisplayStyle.Image toolStripActionButton3.Image = Bitmap.FromStream(GetType(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.LoadFile.png")) toolStripActionButton3.Size = New Size(23, 22) toolStripActionButton3.ToolTipText = "Load File" ' ' toolStripActionButton4 ' Dim toolStripActionButton4 As ToolStripActionButton = TryCast(toolStripItems(5), ToolStripActionButton) toolStripActionButton4.ButtonAction = ToolStripButtonAction.SaveFile toolStripActionButton4.DisplayStyle = ToolStripItemDisplayStyle.Image toolStripActionButton4.Image = Bitmap.FromStream(GetType(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.SaveFile.png")) toolStripActionButton4.Size = New Size(23, 22) toolStripActionButton4.ToolTipText = "Save File" toolStripActionButton4.BackColor = Color.Blue End Sub End Class End Namespace
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using GrapeCity.Win.Editors; namespace MygcRichTextBox { [LicenseProviderAttribute(typeof(LicenseProvider))] public class MygcRichTextBox : GcRichTextBox { public MygcRichTextBox() : base() { } public MygcRichTextBox(IContainer component) : base(component) { } protected override Dictionary<Keys, string> GetDefaultShortcuts() { // // デフォルトのショートカット機能を設定します。 // return null; } protected override List<Type> GetDefaultToolBarItemTypes() { // // デフォルトのツールバーを設定します。 // List<Type> defaultToolBarItemTypes = new List<Type>(); defaultToolBarItemTypes.AddRange( new Type[] { typeof(ToolStripActionButton), typeof(ToolStripBackColorSplitButton), typeof(ToolStripForeColorSplitButton), typeof(ToolStripActionButton), typeof(ToolStripActionButton), typeof(ToolStripActionButton) }); return defaultToolBarItemTypes; } protected override void InitializeToolBarItems(ToolStripItem[] toolStripItems) { // // デフォルトのツールバーを初期化します。 // // // toolStripActionButton1 // ToolStripActionButton toolStripActionButton1 = toolStripItems[0] as ToolStripActionButton; toolStripActionButton1.ButtonAction = ToolStripButtonAction.Bold; toolStripActionButton1.DisplayStyle = ToolStripItemDisplayStyle.Image; toolStripActionButton1.Image = Bitmap.FromStream(typeof(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.Bold.png")); toolStripActionButton1.Size = new Size(23, 22); toolStripActionButton1.ToolTipText = "Bold"; // // toolStripBackColorSplitButton1 // ToolStripBackColorSplitButton toolStripBackColorSplitButton1 = toolStripItems[1] as ToolStripBackColorSplitButton; toolStripBackColorSplitButton1.DisplayStyle = ToolStripItemDisplayStyle.Image; toolStripBackColorSplitButton1.Image = Bitmap.FromStream(typeof(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.BackColor.bmp")); toolStripBackColorSplitButton1.Size = new Size(32, 22); toolStripBackColorSplitButton1.ToolTipText = "Back Color"; // // toolStripForeColorSplitButton1 // ToolStripForeColorSplitButton toolStripForeColorSplitButton1 = toolStripItems[2] as ToolStripForeColorSplitButton; toolStripForeColorSplitButton1.DisplayStyle = ToolStripItemDisplayStyle.Image; toolStripForeColorSplitButton1.Image = Bitmap.FromStream(typeof(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.ForeColor.bmp")); toolStripForeColorSplitButton1.Size = new Size(32, 22); toolStripForeColorSplitButton1.ToolTipText = "Fore Color"; // // toolStripActionButton2 // ToolStripActionButton toolStripActionButton2 = toolStripItems[3] as ToolStripActionButton; toolStripActionButton2.ButtonAction = ToolStripButtonAction.Paste; toolStripActionButton2.DisplayStyle = ToolStripItemDisplayStyle.Image; toolStripActionButton2.Image = Bitmap.FromStream(typeof(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.Paste.png")); toolStripActionButton2.Size = new Size(23, 22); toolStripActionButton2.ToolTipText = "Paste"; // // toolStripActionButton3 // ToolStripActionButton toolStripActionButton3 = toolStripItems[4] as ToolStripActionButton; toolStripActionButton3.ButtonAction = ToolStripButtonAction.LoadFile; toolStripActionButton3.DisplayStyle = ToolStripItemDisplayStyle.Image; toolStripActionButton3.Image = Bitmap.FromStream(typeof(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.LoadFile.png")); toolStripActionButton3.Size = new Size(23, 22); toolStripActionButton3.ToolTipText = "Load File"; // // toolStripActionButton4 // ToolStripActionButton toolStripActionButton4 = toolStripItems[5] as ToolStripActionButton; toolStripActionButton4.ButtonAction = ToolStripButtonAction.SaveFile; toolStripActionButton4.DisplayStyle = ToolStripItemDisplayStyle.Image; toolStripActionButton4.Image = Bitmap.FromStream(typeof(GcRichTextBox).Assembly.GetManifestResourceStream("GrapeCity.Win.Resources.SaveFile.png")); toolStripActionButton4.Size = new Size(23, 22); toolStripActionButton4.ToolTipText = "Save File"; toolStripActionButton4.BackColor = Color.Blue; } } }