MESCIUS InputMan for Windows Forms 12.0J
デフォルト値を設定する方法

デフォルト値を設定する方法で継承コントロールを作成するには、機能毎に対象のメソッドをオーバーライドします。

デフォルト値を設定する方法の特長と注意点

デフォルト値を設定する方法についての特長や注意点については以下のとおりです。

この方法を推奨するケース

基本の継承コントロールを作成する場合に向いています。基底クラスで基本的なフィールド、サイドボタンおよびショートカットを設定し、派生クラスで個別に変更する場合にはこの方法が適切です。

この方法の特長

この方法の難点

この方法を実装する際の注意点

デフォルト値を設定可能な機能

コントロールにデフォルト値設定可能な機能がコントロール毎に異なります。設定可能な機能については、下記の一覧を参考にしてください。

コントロールの種類 入力書式 表示書式 サイドボタン ショートカット機能 その他
テキストコントロール
マスクコントロール
キャラクタボックスコントロール
日付時刻コントロール
日付コントロール
時刻コントロール
タイムスパンコントロール
数値コントロール
コンボコントロール
マスクコンボコントロール
リストコントロール
リッチテキストコントロール
ツールバーを設定できます
郵便番号コントロール
住所コントロール
サンプルコード

デフォルトの機能の設定は、機能毎に対象のメソッドをオーバーライドすることで実現します。以下は日付時刻コントロールを継承したコントロールの実装例です。

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;
        }
    }
}
関連トピック

 

 


© MESCIUS inc. All rights reserved.