独自のコントロール クラスを作成するには、UserControl クラス、Control クラス、または提供されたその他の Windows フォーム コントロールから継承します。カスタム コントロールの作成方法の詳細については、「.NET Framework を使用したカスタム Windows フォーム コントロールの開発」を参照してください。
Control クラスは、ユーザーに情報を表示するクラスが必要とする基本的な機能を実装します。ユーザー入力は、キーボードとポインティング デバイスをとおして処理されます。また、メッセージのルーティングとセキュリティも処理されます。コントロールの範囲 (サイズと位置) は定義されますが、描画は実装されません。ウィンドウのハンドル (hWnd) も用意されます。
Windows フォーム コントロールはアンビエント プロパティを使用するため、子コントロールを周囲の環境のように表示できます。アンビエント プロパティは、コントロール プロパティです。設定しない場合は、親コントロールから取得されます。コントロールに Parent がなく、プロパティが設定されていない場合、コントロールは Site プロパティをとおしてアンビエント プロパティの値を決定しようとします。コントロールが配置されていない場合、そのサイトがアンビエント プロパティをサポートしていない場合、または AmbientProperties にプロパティが設定されていない場合、コントロールは独自の既定値を使用します。一般的に、アンビエント プロパティは、子コントロールに伝えられる BackColor などのコントロールの特性を表します。たとえば、Button は、既定では親の Form と同じ BackColor を持ちます。Control クラスで提供されるアンビエント プロパティには、Cursor、Font、BackColor、ForeColor、および RightToLeftがあります。
メモ : |
|---|
Windows フォーム アプリケーションを Windows XP visual スタイルをサポートするように設定するには、必ず FlatStyle プロパティを System に設定して、実行可能ファイルにマニフェストを含めます。マニフェストは、アプリケーション実行可能ファイルの中のリソースとして、または実行可能ファイルと同じディレクトリに存在する別個のファイルとして含まれる XML ファイルです。マニフェストの例については、FlatStyle 列挙体のトピックで「例」を参照してください。Windows XP で使用できる visual スタイルの使用方法の詳細については、MSDN ライブラリ (http://msdn.microsoft.com/library/ja.) の「Using Windows XP Visual Styles」を参照してください。 |
Windows フォームには、ユーザー補助のサポートが組み込まれており、ユーザー補助クライアント アプリケーションと協調して動作するための、アプリケーションに関する情報が提供されます。ユーザー補助クライアント アプリケーションには、画面拡大ユーティリティとレビューア ユーティリティ、音声入力ユーティリティ、オンスクリーン キーボード、代替入力デバイス、キーボード拡張ユーティリティなどがあります。こうしたユーザー補助クライアント アプリケーションに対して、追加情報を提供する必要が生じる場合があります。この追加情報を提供するには 2 つの方法があります。1 つは、ユーザー補助クライアント アプリケーションに報告される AccessibleName、AccessibleDescription、AccessibleDefaultActionDescription、AccessibleRole の各プロパティ値を設定する方法です。この方法は、一般に、既存のコントロール用の限定されたユーザー補助情報を提供するために使用されます。もう 1 つの方法として、AccessibleObject クラスまたは Control..::.ControlAccessibleObject クラスから派生させて独自のクラスを作成し、必要なユーザー補助情報をすべて提供することもできます。
メモ : |
|---|
優れたパフォーマンスを維持するには、コンストラクタでコントロールのサイズを設定しないでください。DefaultSize プロパティをオーバーライドする方法をお勧めします。 |
System.Windows.Forms 名前空間にあるコントロールの多くは、基になる Windows コモン コントロールをベースとしてその上に構築されています。Windows コモン コントロールの詳細については、MSDN ライブラリ (http://msdn.microsoft.com/library/ja.) の「General Control Reference」を参照してください。
個別のプロセスから Windows フォーム コントロールを識別するには、標準の SendMessage 呼び出しを使用して WM_GETCONTROLNAME メッセージを渡します。WM_GETCONTROLNAME は、言語および Windows 階層には依存しません。詳細については、MSDN ライブラリ (http://msdn.microsoft.com/library/ja) で「Automating Windows Forms」の「Recommended Solution for Windows Forms」を参照してください。
複数のスレッドからのコントロールへのアクセスを同期するには、InvokeRequired プロパティを使用します。マルチスレッド処理された Windows フォーム コントロールの詳細については、「方法 : Windows フォーム コントロールのスレッド セーフな呼び出しを行う」を参照してください。