コンポーネントにイベントを追加するコードを紹介します。
コンポーネント選択時に表示されるイベントウィンドウに独自のイベントを追加する方法を紹介します。
コンポーネントのクラスにイベントを追加します。
以下のコードを実装します。コンポーネントクラスのVisualComponentにOnSimpleイベントを追加します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WinformVisualComponent
{
public partial class VisualComponent : Control
{
public delegate void SimpleDelegate();
private SimpleDelegate onSimple;
public event SimpleDelegate OnSimple
{
add
{
//onSimple = (SimpleDelegate)Delegate.Combine(onSimple, value);
onSimple += value;
}
remove
{
//onSimple = (SimpleDelegate)Delegate.Remove(onSimple, value);
onSimple -= value;
}
}
public VisualComponent()
{
InitializeComponent();
}
public VisualComponent(IContainer container)
{
container.Add(this);
InitializeComponent();
}
}
}
public delegate void SimpleDelegate();
にて、イベントのメソッドの型を定義します。今回は戻り値なし、引数なしとしました。
private SimpleDelegate onSimple;
イベントのメソッドを格納する変数を宣言します。
public event SimpleDelegate OnSimple
{
add
{
//onSimple = (SimpleDelegate)Delegate.Combine(onSimple, value);
onSimple += value;
}
remove
{
//onSimple = (SimpleDelegate)Delegate.Remove(onSimple, value);
onSimple -= value;
}
}
コンポーネントクラスにイベントを追加します。イベントの場合はaddとremoveブロックを実装します。
コンポーネントをビルドし、フォームデザイナに配置します。コンポーネントをクリックして選択しイベントウィンドウの表示内容を確認します。イベント一覧にコンポーネントクラスで実装したOnSimpleイベントが追加されています。