Powered By 画RSS

[C#]テキストボックスのカスタムコントロールを作成する

[C#] TextBoxに全て選択機能がついたカスタムコントロールを作成する

.
前回は、TextBoxにCtrl+Aキーで全て選択する機能をつける方法について書いた。
でも、あれだとTextBoxを追加する度に個別に設定しないといけなくて、かなり面倒。

というわけで、全て選択の機能をデフォルトで使用できるカスタムTextBoxを作成してみる。
カスタムコントロールといっても、単純な機能を1つ2つつけるくらいなら、意外に簡単。

環境:
Microsoft Visual C# 2008 Express Editon


.
■カスタムコントロール作成手順
.
まずは普通にプロジェクトを作成する。
(testprojという名前で作成しました)

次にソリューションエクスプローラーのプロジェクト名で右クリックし、以下の順番で進む。
[追加] -> [新しい項目] -> [クラス]

(ctrllib.csという名前で作成)
pr1 pr2

そうしてできるのが、以下のコード。

ファイル名: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
    {

    }
}

.
ここまでやったら、ソリューションのビルドを実行する。
pr3 

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

カスタムコントロールの雛形ができたよ!やったねタエちゃん!

試しにドラッグして貼り付けてみると、テキストボックスができるはず。
後はこれに全て選択機能を追加すればお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による全て選択が使える。
.
pr5 
.
これで個別に設定する煩わしさが解消された。


にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村
C#によるコンポーネントプログラミング C#によるコンポーネントプログラミング
瀬尾 佳隆

オーム社
売り上げランキング : 379331

Amazonで詳しく見る

.
.

関連記事
スポンサーサイト



この記事へのコメント

トラックバック

URL :

■スポンサードリンク
■プロフィール

ベタログ

管理人 : ベタログ (Twitterアカウント

思い立ったら、ジャンルを気にせず記事にする。それが自由というものだ。
そんな管理方針。
主に取り扱ってる事:オンラインゲーム(SDGO/Travian/ロードオブナイツ)、プログラミングメモ、ネット小説/書籍の感想/観葉植物など。

■まとめ記事
■カテゴリ
■最新記事
■お勧め品
■月別アーカイブ
検索フォーム
リンク