[C#]テキストボックスのカスタムコントロールを作成する
[C#] TextBoxに全て選択機能がついたカスタムコントロールを作成する
.
前回は、TextBoxにCtrl+Aキーで全て選択する機能をつける方法について書いた。
でも、あれだとTextBoxを追加する度に個別に設定しないといけなくて、かなり面倒。
というわけで、全て選択の機能をデフォルトで使用できるカスタムTextBoxを作成してみる。
カスタムコントロールといっても、単純な機能を1つ2つつけるくらいなら、意外に簡単。
環境:
Microsoft Visual C# 2008 Express Editon
.
■カスタムコントロール作成手順
.
まずは普通にプロジェクトを作成する。
(testprojという名前で作成しました)
次にソリューションエクスプローラーのプロジェクト名で右クリックし、以下の順番で進む。
[追加] -> [新しい項目] -> [クラス]
(ctrllib.csという名前で作成)
そうしてできるのが、以下のコード。
ファイル名:ctrllib.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace testproj
{
class ctrllib
{
}
}
これに手を加えてやる。
System.Windows.Forms.TextBoxを継承させる。
.
ファイル名:ctrllib.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace testproj
{
class ctrllib:TextBox
{
}
}
ここまでやったら、ソリューションのビルドを実行する。

そしたらどうでしょう。
Form画面のツールボックスに歯車型のコンポーネントが追加されているじゃありませんか。

カスタムコントロールの雛形ができたよ!やったねタエちゃん!
試しにドラッグして貼り付けてみると、テキストボックスができるはず。
後はこれに全て選択機能を追加すればおk。
.
.
じゃ追加してみましょうか。オマケで、マルチラインの設定とかも変えておく。
ファイル名:ctrllib.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace testproj
{
class ctrllib:TextBox
{
public ctrllib()
{
cstmComponent();
}
private void cstmComponent()
{
this.KeyDown += new System.Windows.Forms.KeyEventHandler(csTextBox_KeyDown);
this.ScrollBars = ScrollBars.Vertical;
this.Multiline = true;
}
private void csTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == System.Windows.Forms.Keys.A & e.Control == true)
{
this.SelectAll();
}
}
}
}
.
追加してあげたら、またビルドする。
これで完成。
さっそくフォームに貼り付けてみて起動してみると、Ctrl+Aによる全て選択が使用できるはず。
こんな風に4つ作っても、全てのテキストボックスで、Ctrl+Aによる全て選択が使える。
.

.
これで個別に設定する煩わしさが解消された。

にほんブログ村
![]() | C#によるコンポーネントプログラミング 瀬尾 佳隆 オーム社 売り上げランキング : 379331 Amazonで詳しく見る |
.
.
- 関連記事
この記事へのコメント
トラックバック
URL :