В C # я создаю пользовательские элементы управления для использования в пользовательских приложениях.Я хочу, чтобы каждый элемент управления реализовывал событие, которое сработает, если внутри элементов управления возникнет исключение или ошибка (ошибка внутренней проверки).Я создал интерфейс, который объявляет событие.Я создаю пользовательские элементы управления, которые реализуют интерфейс.Вот моя проблема.
Когда я добавляю один из моих пользовательских элементов управления в форму, я хочу пройтись по элементам управления в форме, обнаружить все элементы управления, которые являются моими пользовательскими элементами управления, а затем назначить обработчик события для события.Я заявляю в интерфейсе.Я не могу найти способ приведения объекта к типу интерфейса.
Рассмотрим:
interface IMyInterface
{
event ControlExceptionOccured ControlExceptionOccuredEvent;
...
}
public partial class TextControl : UserControl, IMyInterface {
...
public event ControlExceptionOccured ControlExceptionOccuredEvent;
...
}
, и в своей форме я использую один из этих TextControls.У меня есть этот метод:
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control Control in Controls)
{
if (Control.GetType().GetInterface(typeof(IMyInterface).FullName) != null)
{
((IMyInterface)Control).ControlExceptionOccuredEvent += ControlExceptionHandler;
}
}
}
Это соответствует, но не будет выполняться.Как я могу добавить ControlExceptionHandler в цепочку событий?
Спасибо всем, кто пытается помочь.