カスタム コントロールの開発

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

.NET Compact Framework は、Windows フォーム コントロールのほとんどのデバイス プロジェクトのニーズを満たすことができますを提供します。 これらのコントロールいます制約を使用してリソースを効率的におり、したがって、提供されませんサポートの継承されたすべてのプロパティ、メソッド、およびイベント。 不足している機能を満たすためにコモン コントロールから独自のカスタム コントロールを派生できます。 カスタム コントロールまたはアセンブリに、既存の ControlUserControl クラスから継承されたパブリック型を定義して作成できます。

最も簡単なコントロールのカスタマイズはコモン コントロールのメソッドをオーバーライドします。 たとえば、継承された OnKeyPress メソッド TextBox コントロールの数値のみ入力文字を制限するコードを提供するをオーバーライドすることができます。

注意

.NET Compact Framework の基本コントロールから継承した Windows フォーム コントロールですべてのプロパティ、メソッド、およびイベントをサポートしません。

共通コントロールから派生することができます。

  • 独自のプロパティ、メソッド、およびコモン コントロールでイベントをオーバーライドします。

  • その他のプロパティ、メソッド、コントロールのイベントを定義します。

  • such as TextBox および Button コントロールの集まりを複合コントロール ビルドします。

  • コントロールが、数値データのみを受け入れる TextBox"などのユーザーのアクションに応答する方法定義します。

.NET Compact Framework は、デザイン時のアクセスのカスタム コントロールを追加する機能を現在提供しません。

カスタマイズは特製よりをする場合は、Control クラスから派生したカスタム コントロールを作成する必要があります。 OnPaint メソッドをオーバーライドしてコントロールを描画し、非 UI コントロールをカスタム イベントとしてこのようなニーズを作成できます。

派生コントロールが描画されなければならない方法と、Control メソッドでは描画ロジックを提供しない、基本 OnPaint クラスは認識されません。 OnPaint Control 方法は、だけ Paint イベント登録済みのイベント レシーバーをディスパッチします。

.NET Compact Framework が、PaintResize に関しておよびイベントだけ、 FormControl クラスの。

ツールボックスへのカスタム コントロールの追加

Microsoft Visual Studio 2005でカスタム コントロールのプロジェクトを作成すると、アプリケーションはコンパイル時に、コントロールが のツールボックスに追加自動的に。 プロジェクトの種類、次のいずれかを使用してカスタム コントロールを作成できます。

  • コントロール ライブラリ

  • クラス ライブラリ

  • クラス ライブラリ (1. 0)

[ツールボックス] には、カスタム コントロールを追加するには、[ツール] メニューから [ツールボックス アイテムの選択] をクリックします。 コントロールのアセンブリを参照できます。

カスタム コントロールの手法および考慮事項

カスタム コントロールを作成するときする次を注します。

  • .NET Compact Framework NET Framework 内のいくつかのコントロールでは、親コントロールからの継承の値は行いません。 この問題を回避するには、親を変更するときに特定し、適切なアクションを実行する、OnParentChanged メソッドを使用します。 親が変更されたときに、背景色を変更する次のコード例に示します。

    protected override void OnParentChanged(EventArgs e)
    {
        base.OnParentChanged(e);
        this.BackColor = Parent.BackColor;
    }
    
    Protected Overrides Sub OnParentChanged(ByVal e As EventArgs) 
        MyBase.OnParentChanged(e)
        Me.BackColor = Parent.BackColor
    End Sub
    
  • .NET Compact Framework では、親コントロールのフォントを継承できません。

  • 場所を「タップ アンド ホールド」は、カスタム コントロールの位置を検出するにはイベントは、ショートカット メニューを表示し、Popup イベントを処理し、現在のマウスをクエリの座標 MousePosition プロパティを使用して発生しました。

  • 前のコントロールにカスタム コントロールの出力] タブに、KeyDown キーが検出されると次のコード、 Up イベント ハンドラーで使用します。

    this.Parent.Controls(
        this.Parent.GetChildIndex(customcontrol) - 1).Focus()
    
    Me.Parent.Controls( _
        Me.Parent.GetChildIndex(customcontrol) - 1).Focus
    

手順の説明トピック

拡張機能を取得するカスタム コントロールを使用し、次の方法を説明したトピックに示します。

方法 : ユーザー設定のダブルクリック イベントを作成します。

方法 : カスタム イメージ ボタン コントロールを作成します。

方法 : グラデーションの塗りつぶしを表示します。

方法 : 数値、テキスト ボックスを作成します。

方法 : オーナー描画リスト ボックスを作成します。

方法 : "OnEnter/フォーカス取得時"の機能を作成します。

方法 : フォームの内容のスクロール

方法 : リスト ビュー アイテムの並べ替え

方法 : サブクラスをネイティブのコールバック関数を使用して、ツリー ビュー

方法 : サブクラスをネイティブのコールバック関数を使用したボタン

参照

概念

管理ウィンドウ プロシージャでコントロールをサブクラス化

その他の技術情報

Windows フォーム コントロール、.NET Framework を最適化します。