主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

.NET で UserControl に Custom Event を追加する

最終更新日 2007-11-28 02:48:36 (1年以上前の記事です)

.NET でカスタムイベントを UserControl に追加する方法を何度か調べている気がしたので、まとめておく。
たしか .NET 2003 のときは結構面倒くさかった気がしたけど、今はクラスに event handler 定義するだけでプロパティパネルにも簡単に表示させることができるんだね。

とりあえず環境
VisualStudio 2005 C# .NET

ここではシンプルに UserControl にボタンを一個つけて、そのボタンイベントをメインの Form で拾いたい例を考える。

event と delegate の追加

まずプロジェクトに UserControl を UserControl1 ってディフォルトのままで追加。そしてコードビューを開き、 UserControl1 クラスに event と delegate を追加する。ここではせっかくだから独自の EventArgs も定義してみる。

namespace WindowsApplication1
{
    public partial class UserControl1 : UserControl
    {
        public delegate void MyClickHandler(object sender, MyClickArgs cla);
        public event MyClickHandler MyClick;

EventArgs の定義

次に、せっかくの EventArgs を定義する。

    public class MyClickArgs : System.EventArgs
    {
        private string _mymes;

        public MyClickArgs(EventArgs ea, string mymes)
        {
            this._mymes = mymes;
        }

        public string MyMes
        {
            get
            {
                return _mymes;
            }
        }
    }

Event の実装

最後にボタンを一個追加して、そいつがクリックされた時にイベントを発生させるようにする。ボタン名はとりあえず button1 だとして。

        private void button1_Click(object sender, EventArgs e)
        {
            MyClick(this, new MyClickArgs(e, "Enjoi?"));
        }

とまあ、ざっとこんな感じ。

これをコンパイルして、 Form に貼り付けると、この UserCtonrol のイベントパネルに MyClick というイベントが追加されているはず。これは便利だ。

最終更新日 2007-11-28 02:48:36

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank1, rank2, rank3, rank7, rank9, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google