今回から数回に分けて、Windowsアプリでのユーザーコントロールの作成方法について説明します。
ユーザーコントロールは、新規クラスから作成することもできますし、プロジェクトメニューの[追加]-[ユーザーコントロール]で作成することもできます。
また、作成するユーザーコントロールはdllにすることもできますし、自身が使うWindowsフォームアプリケーション内で直接作成することもできます。
今回は、Windowsフォームアプリケーションに、直接自作のコントロールを作ってみたいと思います。
お題は、「チェックボックス付きのテキストボックス」コントロールです。
チェックボックスがチェック状態のときはテキストが入力でき、チェックが外されたらテキストを入力できないようにするコントロールです。
作成するコントロールの実行イメージは下図の通りです。
新規プロジェクトを作成したら、プロジェクトメニューから[追加]-[ユーザーコントロール]をクリックして、「CheckTextBox」という名前で保存します。
CheckTextBoxのデザイナーが開くので、下図のようにCheckBoxとTextBoxを配置します。CheckBoxのTextプロパティには空文字をセットして、チェックマークの部分だけを残しています。
次に、CheckTextBox(ユーザーコントロール)の高さを、配置したTextBoxと同じ高さに設定します。
あとは、TextBoxのReadOnlyプロパティをfalseに設定しておきます。
デザインは以上です。
今度は、チェック状態に合わせてTextBoxの有効/無効を切り替える処理を作成します。
次にチェック状態変更時の処理を書きます。
貼り付けてあるCheckBoxのCheckedChangedイベントを作成して、コードを以下のようにします。
private void checkBox1_CheckedChanged(object sender, EventArgs e) { // チェック状態の時は入力ができるようにする textBox1.ReadOnly = !checkBox1.Checked; }
ここまで入力ができたら、ビルドをしてみましょう。
ビルドが成功すると、ツールボックスにCheckTextBoxが表示されます。
あとは、CheckTextBoxを自分のフォームに貼り付けて、動作を確認してみましょう。
チェック状態の時は入力ができ、未チェック状態のときは入力ができないコントロールとなっていればOKです。
次回は、公開プロパティの作成方法やコントロールのリサイズ対応などについて紹介する予定です。
コメント