継承コントロールの作成方法(1):デザイン機能を無効にして実行時に設定する方法
対象製品
InputMan for Windows Forms 6.0J
詳細
InputMan for Windows Forms 6.0Jでは、Service Pack 1以降、2つの継承コントロールを作成する方法を提供しています。ひとつは「デザイン機能を無効にして実行時に設定する方法」、もうひとつは「デフォルトを設定する方法」です。
このFAQでは、これらの作成方法のうち、「デザイン機能を無効にして実行時に設定する方法」を説明します。
・デザイン機能を無効にして実行時に設定する方法
デザイン機能を無効にして実行時に設定する方法は、InputMan for Windows Forms 5.0Jや初版のInputMan for Windows Forms 6.0Jで提供していた継承コントロールの作成方法です。この方法では、各機能が自動に追加されるデザイン機能を無効にし、実行時にフィールドやサイドボタン、ショートカット機能を設定します。
[継承クラス作成の際の注意点]
以下の実装例では、GcDate, GcTimeSpan, GcNumber, GcComboBoxのそれぞれのコントロールについて、基底クラスであらかじめフィールドやサイドボタンを実装する実装例を紹介しています。
日付コントロール(GcDate)
[Visual Basic]
[C#]
タイムスパンコントロール(GcTimeSpan)
[Visual Basic]
[C#]
数値コントロール(GcNumber)
[Visual Basic]
[C#]
コンボコントロール(GcComboBox)
[Visual Basic]
[C#]
このFAQでは、これらの作成方法のうち、「デザイン機能を無効にして実行時に設定する方法」を説明します。
・デザイン機能を無効にして実行時に設定する方法
デザイン機能を無効にして実行時に設定する方法は、InputMan for Windows Forms 5.0Jや初版のInputMan for Windows Forms 6.0Jで提供していた継承コントロールの作成方法です。この方法では、各機能が自動に追加されるデザイン機能を無効にし、実行時にフィールドやサイドボタン、ショートカット機能を設定します。
[継承クラス作成の際の注意点]
- 引数のないコンストラクタと、IContainerを引数に取るコンストラクタの両方を実装する。
- 引数なしのコンストラクタのみが実装されている場合、継承コントロールを配置したアプリケーションを実行すると例外が発生する場合があります。
- 基底クラスでフィールドやサイドボタンをあらかじめ追加しておく場合は、以下の点に留意する。
- 継承クラスのInitializeComponentメソッド内にはフィールドやサイドボタンを追加するコードを記述しない。これらのコードは「initializeCollections」等の別名のメソッド内に記述し、このメソッドをコンストラクタから呼び出す。
- 引数のないコンストラクタには、最初にフィールドとサイドボタンを消去する処理を記述する。
- 以下のメソッドを実装して継承クラスのデザイン機能が動作しないように設定する。(注意:これらのメソッドを実装した場合、継承クラスのフィールドやサイドボタンをプロパティページやスマートタグから編集することはできなくなります。)
- Fields / ShouldSerializeFields
- DisplayFields / ShouldSerializeDisplayFields
- SideButtons / ShouldSerializeSideButtons
- 注意:継承クラスをフォームに配置した時にサイドボタンやフィールドが一部不正になることがありますが、アプリケーション実行時には正しく表示されます。
以下の実装例では、GcDate, GcTimeSpan, GcNumber, GcComboBoxのそれぞれのコントロールについて、基底クラスであらかじめフィールドやサイドボタンを実装する実装例を紹介しています。
日付コントロール(GcDate)
[Visual Basic]
Imports GrapeCity.Win.Editors
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
' ライセンス属性を設定します。
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcDateX
Inherits GcDate
Public Sub New()
' 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
Me.Fields.Clear()
Me.DisplayFields.Clear()
Me.SideButtons.Clear()
' フィールドなどを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' フィールドなどを初期化します。
initializeCollections()
End Sub
' フィールドなどを初期化します。
Private Sub initializeCollections()
Me.Fields.AddRange("yyyy/MM/dd")
Me.DisplayFields.AddRange("yyyy/M/d")
Me.SideButtons.Add(New DropDownButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 入力フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property Fields() As DateFieldCollection
Get
Return MyBase.Fields
End Get
End Property
Private Function ShouldSerializeFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 表示フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property DisplayFields() As DateDisplayFieldCollection
Get
Return MyBase.DisplayFields
End Get
End Property
Private Function ShouldSerializeDisplayFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
' ライセンス属性を設定します。
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcDateX
Inherits GcDate
Public Sub New()
' 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
Me.Fields.Clear()
Me.DisplayFields.Clear()
Me.SideButtons.Clear()
' フィールドなどを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' フィールドなどを初期化します。
initializeCollections()
End Sub
' フィールドなどを初期化します。
Private Sub initializeCollections()
Me.Fields.AddRange("yyyy/MM/dd")
Me.DisplayFields.AddRange("yyyy/M/d")
Me.SideButtons.Add(New DropDownButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 入力フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property Fields() As DateFieldCollection
Get
Return MyBase.Fields
End Get
End Property
Private Function ShouldSerializeFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 表示フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property DisplayFields() As DateDisplayFieldCollection
Get
Return MyBase.DisplayFields
End Get
End Property
Private Function ShouldSerializeDisplayFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
[C#]
using GrapeCity.Win.Editors;
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcDateX : GcDate
{
public GcDateX()
{
// 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
this.Fields.Clear();
this.DisplayFields.Clear();
this.SideButtons.Clear();
// フィールドなどを初期化します。
initializeCollections();
}
public GcDateX( IContainer container ) : base( container )
{
// フィールドなどを初期化します。
initializeCollections();
}
// フィールドなどを初期化します。
private void initializeCollections()
{
this.Fields.AddRange( "yyyy/MM/dd" );
this.DisplayFields.AddRange( "yyyy/M/d" );
this.SideButtons.Add( new DropDownButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 入力フィールドが追加される動作を無効にします。
public new DateFieldCollection Fields
{
get{ return base.Fields; }
}
private bool ShouldSerializeFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 表示フィールドが追加される動作を無効にします。
public new DateDisplayFieldCollection DisplayFields
{
get{ return base.DisplayFields; }
}
private bool ShouldSerializeDisplayFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
}
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcDateX : GcDate
{
public GcDateX()
{
// 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
this.Fields.Clear();
this.DisplayFields.Clear();
this.SideButtons.Clear();
// フィールドなどを初期化します。
initializeCollections();
}
public GcDateX( IContainer container ) : base( container )
{
// フィールドなどを初期化します。
initializeCollections();
}
// フィールドなどを初期化します。
private void initializeCollections()
{
this.Fields.AddRange( "yyyy/MM/dd" );
this.DisplayFields.AddRange( "yyyy/M/d" );
this.SideButtons.Add( new DropDownButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 入力フィールドが追加される動作を無効にします。
public new DateFieldCollection Fields
{
get{ return base.Fields; }
}
private bool ShouldSerializeFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 表示フィールドが追加される動作を無効にします。
public new DateDisplayFieldCollection DisplayFields
{
get{ return base.DisplayFields; }
}
private bool ShouldSerializeDisplayFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
}
タイムスパンコントロール(GcTimeSpan)
[Visual Basic]
Imports GrapeCity.Win.Editors
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
' ライセンス属性を設定します。
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcTimeSpanX
Inherits GcTimeSpan
Public Sub New()
' 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
Me.Fields.Clear()
Me.DisplayFields.Clear()
Me.SideButtons.Clear()
' フィールドなどを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' フィールドなどを初期化します。
initializeCollections()
End Sub
' フィールドなどを初期化します。
Private Sub initializeCollections()
Me.Fields.AddRange("h/m/s", 2, "."c, "", "", "-", "")
Me.DisplayFields.AddRange("hh/mm/ss", 2, "."c, "", "", "-", "")
Me.SideButtons.Add(New SpinButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 入力フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property Fields() As TimeSpanFieldCollection
Get
Return MyBase.Fields
End Get
End Property
Private Function ShouldSerializeFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 表示フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property DisplayFields() As TimeSpanDisplayFieldCollection
Get
Return MyBase.DisplayFields
End Get
End Property
Private Function ShouldSerializeDisplayFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
' ライセンス属性を設定します。
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcTimeSpanX
Inherits GcTimeSpan
Public Sub New()
' 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
Me.Fields.Clear()
Me.DisplayFields.Clear()
Me.SideButtons.Clear()
' フィールドなどを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' フィールドなどを初期化します。
initializeCollections()
End Sub
' フィールドなどを初期化します。
Private Sub initializeCollections()
Me.Fields.AddRange("h/m/s", 2, "."c, "", "", "-", "")
Me.DisplayFields.AddRange("hh/mm/ss", 2, "."c, "", "", "-", "")
Me.SideButtons.Add(New SpinButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 入力フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property Fields() As TimeSpanFieldCollection
Get
Return MyBase.Fields
End Get
End Property
Private Function ShouldSerializeFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 表示フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property DisplayFields() As TimeSpanDisplayFieldCollection
Get
Return MyBase.DisplayFields
End Get
End Property
Private Function ShouldSerializeDisplayFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
[C#]
using GrapeCity.Win.Editors;
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcTimeSpanX : GcTimeSpan
{
public GcTimeSpanX()
{
// 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
this.Fields.Clear();
this.DisplayFields.Clear();
this.SideButtons.Clear();
// フィールドなどを初期化します。
initializeCollections();
}
public GcTimeSpanX( IContainer container ) : base( container )
{
// フィールドなどを初期化します。
initializeCollections();
}
// フィールドなどを初期化します。
private void initializeCollections()
{
this.Fields.AddRange( "h/m/s", 2, '.', "", "", "-", "" ) ;
this.DisplayFields.AddRange( "hh/mm/ss", 2, '.', "", "", "-", "" );
this.SideButtons.Add( new SpinButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 入力フィールドが追加される動作を無効にします。
public new TimeSpanFieldCollection Fields
{
get{ return base.Fields; }
}
private bool ShouldSerializeFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 表示フィールドが追加される動作を無効にします。
public new TimeSpanDisplayFieldCollection DisplayFields
{
get{ return base.DisplayFields; }
}
private bool ShouldSerializeDisplayFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
}
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcTimeSpanX : GcTimeSpan
{
public GcTimeSpanX()
{
// 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
this.Fields.Clear();
this.DisplayFields.Clear();
this.SideButtons.Clear();
// フィールドなどを初期化します。
initializeCollections();
}
public GcTimeSpanX( IContainer container ) : base( container )
{
// フィールドなどを初期化します。
initializeCollections();
}
// フィールドなどを初期化します。
private void initializeCollections()
{
this.Fields.AddRange( "h/m/s", 2, '.', "", "", "-", "" ) ;
this.DisplayFields.AddRange( "hh/mm/ss", 2, '.', "", "", "-", "" );
this.SideButtons.Add( new SpinButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 入力フィールドが追加される動作を無効にします。
public new TimeSpanFieldCollection Fields
{
get{ return base.Fields; }
}
private bool ShouldSerializeFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 表示フィールドが追加される動作を無効にします。
public new TimeSpanDisplayFieldCollection DisplayFields
{
get{ return base.DisplayFields; }
}
private bool ShouldSerializeDisplayFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
}
数値コントロール(GcNumber)
[Visual Basic]
Imports GrapeCity.Win.Editors
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcNumberX
Inherits GcNumber
Public Sub New()
' 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
Me.DisplayFields.Clear()
Me.SideButtons.Clear()
' フィールドなどを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' フィールドなどを初期化します。
initializeCollections()
End Sub
' フィールドなどを初期化します。
Private Sub initializeCollections()
Me.Fields.SetFields("#0.00", "", "", "-", "")
Me.DisplayFields.AddRange("#0.##", "", "", "-", "")
Me.SideButtons.Add(New SpinButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 入力フィールドが設定される動作を無効にします。
Public Overloads ReadOnly Property Fields() As NumberFields
Get
Return MyBase.Fields
End Get
End Property
Private Function ShouldSerializeFieilds() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 表示フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property DisplayFields() As NumberDisplayFieldCollection
Get
Return MyBase.DisplayFields
End Get
End Property
Private Function ShouldSerializeDisplayFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcNumberX
Inherits GcNumber
Public Sub New()
' 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
Me.DisplayFields.Clear()
Me.SideButtons.Clear()
' フィールドなどを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' フィールドなどを初期化します。
initializeCollections()
End Sub
' フィールドなどを初期化します。
Private Sub initializeCollections()
Me.Fields.SetFields("#0.00", "", "", "-", "")
Me.DisplayFields.AddRange("#0.##", "", "", "-", "")
Me.SideButtons.Add(New SpinButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 入力フィールドが設定される動作を無効にします。
Public Overloads ReadOnly Property Fields() As NumberFields
Get
Return MyBase.Fields
End Get
End Property
Private Function ShouldSerializeFieilds() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' 表示フィールドが追加される動作を無効にします。
Public Overloads ReadOnly Property DisplayFields() As NumberDisplayFieldCollection
Get
Return MyBase.DisplayFields
End Get
End Property
Private Function ShouldSerializeDisplayFields() As Boolean
Return False
End Function
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
[C#]
using GrapeCity.Win.Editors;
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcNumberX : GcNumber
{
public GcNumberX()
{
// 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
this.DisplayFields.Clear();
this.SideButtons.Clear();
// フィールドなどを初期化します。
initializeCollections();
}
public GcNumberX( IContainer container ) : base( container )
{
// フィールドなどを初期化します。
initializeCollections();
}
// フィールドなどを初期化します。
private void initializeCollections()
{
this.Fields.SetFields( "#0.00", "", "", "-", "" );
this.DisplayFields.AddRange( "#0.##", "", "", "-", "" );
this.SideButtons.Add( new SpinButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 入力フィールドが設定される動作を無効にします。
public new NumberFields Fields
{
get{ return base.Fields; }
}
private bool ShouldSerializeFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 表示フィールドが追加される動作を無効にします。
public new NumberDisplayFieldCollection DisplayFields
{
get{ return base.DisplayFields; }
}
private bool ShouldSerializeDisplayFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcNumberX : GcNumber
{
public GcNumberX()
{
// 引数なしのコンストラクタでは、最初にフィールドなどを消去します。
this.DisplayFields.Clear();
this.SideButtons.Clear();
// フィールドなどを初期化します。
initializeCollections();
}
public GcNumberX( IContainer container ) : base( container )
{
// フィールドなどを初期化します。
initializeCollections();
}
// フィールドなどを初期化します。
private void initializeCollections()
{
this.Fields.SetFields( "#0.00", "", "", "-", "" );
this.DisplayFields.AddRange( "#0.##", "", "", "-", "" );
this.SideButtons.Add( new SpinButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 入力フィールドが設定される動作を無効にします。
public new NumberFields Fields
{
get{ return base.Fields; }
}
private bool ShouldSerializeFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// 表示フィールドが追加される動作を無効にします。
public new NumberDisplayFieldCollection DisplayFields
{
get{ return base.DisplayFields; }
}
private bool ShouldSerializeDisplayFields()
{
return false;
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
コンボコントロール(GcComboBox)
[Visual Basic]
Imports GrapeCity.Win.Editors
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcComboBoxX
Inherits GcComboBox
Public Sub New()
' 引数なしのコンストラクタでは、最初にサイドボタンを消去します。
Me.SideButtons.Clear()
' サイドボタンを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' サイドボタンを初期化します。
initializeCollections()
End Sub
' サイドボタンを初期化します。
Private Sub initializeCollections()
Me.SideButtons.Add(New SpinButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
Imports GrapeCity.Win.Editors.Fields
Imports System.ComponentModel
<LicenseProviderAttribute(GetType(LicenseProvider))> _
Public Class GcComboBoxX
Inherits GcComboBox
Public Sub New()
' 引数なしのコンストラクタでは、最初にサイドボタンを消去します。
Me.SideButtons.Clear()
' サイドボタンを初期化します。
initializeCollections()
End Sub
Public Sub New(ByVal container As IContainer)
MyBase.New(container)
' サイドボタンを初期化します。
initializeCollections()
End Sub
' サイドボタンを初期化します。
Private Sub initializeCollections()
Me.SideButtons.Add(New SpinButton())
End Sub
' 以下の2つのメソッドを実装することにより、
' 継承コントロールをフォームにドロップした時にコントロールに
' サイドボタンが追加される動作を無効にします。
Public Overloads ReadOnly Property SideButtons() As SideButtonCollection
Get
Return MyBase.SideButtons
End Get
End Property
Private Function ShouldSerializeSideButtons() As Boolean
Return False
End Function
End Class
[C#]
using GrapeCity.Win.Editors;
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcComboBoxX : GcComboBox
{
public GcComboBoxX()
{
// 引数なしのコンストラクタでは、最初にサイドボタンを消去します。
this.SideButtons.Clear();
// サイドボタンを初期化します。
initializeCollections();
}
public GcComboBoxX( IContainer container ) : base( container )
{
// サイドボタンを初期化します。
initializeCollections();
}
// サイドボタンを初期化します。
private void initializeCollections()
{
this.SideButtons.Add( new SpinButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
}
using GrapeCity.Win.Editors.Fields;
using System.ComponentModel;
// ライセンス属性を設定します。
[LicenseProviderAttribute( typeof( LicenseProvider ) )]
public class GcComboBoxX : GcComboBox
{
public GcComboBoxX()
{
// 引数なしのコンストラクタでは、最初にサイドボタンを消去します。
this.SideButtons.Clear();
// サイドボタンを初期化します。
initializeCollections();
}
public GcComboBoxX( IContainer container ) : base( container )
{
// サイドボタンを初期化します。
initializeCollections();
}
// サイドボタンを初期化します。
private void initializeCollections()
{
this.SideButtons.Add( new SpinButton() );
}
// 以下の2つのメソッドを実装することにより、
// 継承コントロールをフォームにドロップした時にコントロールに
// サイドボタンが追加される動作を無効にします。
public new SideButtonCollection SideButtons
{
get{ return base.SideButtons; }
}
private bool ShouldSerializeSideButtons()
{
return false;
}
}
この文書は、以前は次のFAQ IDで公開されていました : 13261