Создайте пользовательское событие в пользовательском элементе управления и добавьте в него форму.Если вам нужны пользовательские аргументы событий, вы также можете создавать их.
В пользовательском управлении:
//Define your Custom Event argument
public class MyEventArgs : EventArgs
{
//Define some fields of your custom event argument
private int m_SomeValue = 0;
//Define some properties of your custom event argument
public int SomeValue
{
get { return m_SomeValue; }
set { m_SomeValue = value; }
}
}
//Define the event handler data type
public delegate void MyEventHandler(object sender, MyEventArgs e);
//Define the object which holds the outside event handlers
public event MyEventHandler SomeEvent;
//Define the function which will generate the event
public virtual void OnSomeEvent(MyEventArgs e)
{
if (SomeEvent != null)
SomeEvent(this, e);
}
.
. //Then later in the control
.
{
//We need new data
//Create the event arguments
MyEventArgs newEvent = new MyEventArgs();
//Set the values
newEvent.SomeValue = 17;
//Call the event generating function
OnSomeEvent(newEvent);
}
В вашей форме просто используйте что-то вроде:
myControl.SomeEvent += new MyEventHandler(handlerName);
Так какВаше мероприятие является публичным, вы также должны увидеть его в окне «Свойства» вашего элемента управления.
Вы можете придумать событие, используя атрибуты метаданных, но я оставляю это на ваше усмотрение, чтобы обнаружить их.