winformカスタムコントロールの作成(入門)

6008 ワード

原文リンク:http://blog.csdn.net/bychentufeiyang/article/details/7081402
 
原文とほぼ一致しているが、例がVS 2012環境になり、言語はブロガーがよく使うVBを採用している.NET
 
一、概要Windowsフォームコントロールは、ユーザーインタフェース機能をカプセル化し、クライアントWindowsアプリケーションに使用できる再利用可能なコンポーネントである.Windowsフォームには、既存のコントロールだけでなく、独自のコントロールを開発するインフラストラクチャも多数用意されています.既存のコントロールを組み合わせたり、既存のコントロールを拡張したり、独自のカスタムコントロールを作成したりすることができます.WindowsフォームコントロールはSystem.Windows.Forms.Controlが直接または間接的に派生したクラス.次のリストでは、Windowsフォームコントロールの開発に関する一般的なシナリオを説明します.
既存のコントロールを組み合わせて複合コントロールを作成します.
複合コントロールパッケージには、コントロールとして繰り返し使用できるユーザーインタフェースがあります.ビジュアルデザイナーは、複合コントロールの作成に強力なサポートを提供します.Systemから派生するWindows.Forms.UserControlの複合コントロール.ベースクラスのUserControlは、サブコントロールにキーボードルーティングを提供し、サブコントロールをグループとして動作させることができます.
・拡張には、コントロールが表示され、カスタマイズされたり、機能が追加されたりします.
Windowsフォームコントロールは、任意のWindowsフォームコントロールから派生し、プロパティ、メソッド、イベントを書き換えたり追加したりすることでカスタマイズできます.
・既存のコントロールを組み合わせたり拡張したりすることによって形成されないコントロールを作成する.
このシナリオでは、ベースクラスSystemから.Windows.Forms.Control派生コントロール.ベースクラスのプロパティ、メソッド、イベントを追加および書き換えることで、自分のニーズを満たす強力なコントロールを作成できます.
WindowsフォームコントロールのベースクラスSystem.Windows.Forms.Controlは、クライアントWindowsアプリケーションの外観表示に必要な方法を提供します.Controlは、メッセージルーティングを処理し、マウスおよびキーボードイベント、および他の多くのユーザーインタフェースイベントを提供するためのウィンドウハンドルを提供します.高度なレイアウトも用意されており、ForeColor、BackColor、Height、Widthなどの外観表示用の特定のプロパティがあります.さらに、セキュリティ、スレッドサポート、およびActiveXコントロールとのインタラクティビティも提供します.ベースクラスには多くのインフラストラクチャが用意されているため、独自のWindowsフォームコントロールの開発が比較的簡単になります.
 
二、簡単なカスタムコントロール2.1を作成し、簡単なコントロールの例の下の例は簡単なコントロールを作成し、このコントロールはPaintイベントを処理することによってそのText属性の値を表示する.このコントロールを作成し、イベントを処理するには、Controlから継承されたクラスを作成し、OnPaintメソッドを書き換える方法を作成する必要があります.
Public Class HelloWorldControl
    Inherits System.Windows.Forms.TextBox

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim rect As RectangleF = New RectangleF(ClientRectangle.X,
                                         ClientRectangle.Y,
                                         ClientRectangle.Width,
                                         ClientRectangle.Height)
        e.Graphics.DrawString(me.Text, Font, New SolidBrush(ForeColor), rect)
    End Sub

End Class

 
2.2.VS 2012でカスタムコントロールを作成するには:1.VS 2012を打って、ファイル/新規/プロジェクト.
2.「新規プロジェクト」ダイアログ・ボックスが表示され、次の図のように選択します.
3.「追加」をクリックすると、カスタムコントロールプロジェクトが完成し、生成すると、簡単なカスタムコントロールが作成されますが、機能はありません.
4.新しいユーザー・コントロールにタグおよびコントロールを追加し、そのユーザー・コントロールに実行されるすべてのタスク(コントロール・イベントの処理やデータ・ソースからのデータの読み出しなど)にコードを追加します.
*ブロガーはここでそのようなプロジェクトを選ぶべきかどうかは分かりませんが、一応以下のように選択します.
winform制作自定义控件(入门)_第1张图片
winform制作自定义控件(入门)_第2张图片
ブロガーは精通していない.Net、しかしブロガーはこの方法で生成して、binDebugフォルダの下でdllを生成したことを発見して、これもまさにブロガーが学ぶ必要があるのです
winform制作自定义控件(入门)_第3张图片
 
2.3.コントロールの設計時の動作を検査する.VS 2012を起動します.
2.「ファイル」メニューから/新規/プロジェクト/Windowsアプリケーションをクリックすると、デフォルトのフォームがあり、ブロガーはこのデフォルトのフォームでテストします.
3.「ツール/選択ツールボックスアイテム...」で、ポップアップの「選択ツールボックスアイテム」ダイアログボックスの下にあるブラウズボタンをクリックして、コントロールを使用するDLLを選択します.OKを押すと、ツールボックスの下部にコントロールが表示されます.
4.コントロールを選択し、フォームに追加します.コントロールがフォームに表示されます.
5.前の例からコントロールを追加すると、簡単なコントロールでもプロパティと幅広い設計時の動作が揃っていることに気づきます.このデフォルトの動作はControlクラスから継承されます.
winform制作自定义控件(入门)_第4张图片
さっきコンパイルしたdllを見つけて、
winform制作自定义控件(入门)_第5张图片
 
winform制作自定义控件(入门)_第6张图片
これでブロガーはすでに自分が知りたいことを知っていて、すべての原文の後半の内容はもう復唱しません
1:Windowsフォームコントロールライブラリを選択すると、プロジェクトをdllにコンパイルできます.dllにコントロールがあります.
2:コンパイルしたdllをツールボックスに入れる方法