Редактировать: кажется, что ваш вопрос больше связан с подключением к определенному событию, но ниже показано, как в общем случае запускать пользовательские события.
Обработка измененного события TextBox
Насколько я понимаю, вы хотите, чтобы внешняя сторона отслеживала события, возникающие из текстового поля в форме, а затем перезагружала данные в другой форме?
Быстро и грязно было бы сделать форму TextBox общедоступной.и тогда другие могут подписаться на это событие
MainForm.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
ИЛИ в более поздних версиях C #:
MainForm.textBox1.TextChanged += this.textBox1_TextChanged;
Добавление собственного пользовательского события
Другим, более чистым способом было бы поднять пользовательское событие , например, MyDataChangedEvent
ниже.Это позволит вам абстрагироваться от того факта, что изменения вообще происходят из текстового поля.
// Assuming you need a custom signature for your event. If not, use an existing standard event delegate
public delegate void myDataChangedDelegate(object sender, YourCustomArgsHere args);
// Expose the event off your component
public event myDataChangedDelegate MyDataChangedEvent;
// And to raise it
var eventSubscribers = MyDataChangedEvent;
if (eventSubscribers != null)
{
eventSubscribers(this, myCustomArgsHere);
}
Вы также можете взглянуть на блок составных приложений Ent Lib и фабрику программного обеспечения Smart Client - здесь есть очень гибкий механизм разбивки событий / паба для синхронизации между UI «SmartParts» (элементы управления,диалоги форм и т. д.) в слабосвязанном виде. (CAB теперь очень устарел).