Я создаю приложение Windows Forms с помощью C#, я создаю множество пользовательских элементов управления, и мой графический интерфейс представляет собой комбинацию этих элементов управления пользователями, проблема заключается в том, что я устанавливаю событие для этого элемента управления пользователя из основного form, событие не срабатывает, но если я установил это событие из элементов управления сам и установил обработчик событий для всех элементов внутри этого элемента управления для этого обработчика событий, он отлично работает, и поскольку у меня есть обернутые элементы управления, я должен глубоко вникать в установите события и обработчики событий, на самом деле это будет стоить больше накладных расходов «Который я не хочу». например:Пользовательские элементы управления и события C#
В главной форме у меня есть управление с он назвал «Пациент», который является пользовательским элементом управления .. если я установить событие щелчка для этого элемента управления от основной формы он не будет стрелять
Но если я перейти к определению пользовательского элемента управления пациента, и я определить пользовательское событие и обработчик события все отлично
public event EventHandler PatientCliecked;
private void PatientClicked()
{
if (this.PatientCliecked != null)
this.PatientCliecked(new object(), new EventArgs());
}
private void ProcessPatientClickedEvent(object sender, EventArgs e)
{
PatientClicked();
}
Мой вопрос, есть ли другой способ сделать это, или это логика .NET ??
'если я установил событие click для этого элемента управления из основной формы, он не будет гореть' ---> Не могли бы вы сделать это яснее? Как вы это делаете, любой код? –
Итак, во избежание нарушения целостности имени в классе, который вы на самом деле назвали событием 'PatientCli ** e ** cked'? Это не так, потому что люди станут раздражительными и морскими. Вы должны использовать суффиксы или префиксы на английском языке, например: «event EventHandler PatientClicked», в отличие от 'private void RaisePatientClicked()' –
в основной форме, например: 'Patient MyPatient = new Patient(); MtPatient.click + = PatientClickHandler; частная пустота PatientClichHandler (объект отправителя, EventArgs е) { // Код } ' @EduardDumitru .. Моя проблема не в названиях, а у меня нет никаких конфликтов с ними – user2151551