Я создаю приложение Windows Forms с использованием 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?
if I set the click event for this control from the main form it will not fire
--- ›Не могли бы вы пояснить? Как это сделать, любой код? - person King King   schedule 17.09.2013PatientCli**e**cked
? Это нельзя, потому что люди станут морщинистыми и заболеют морской болезнью. Вы должны использовать суффиксы или префиксы английского языка, например:event EventHandler PatientClicked
вместоprivate void RaisePatientClicked()
- person Eduard Dumitru   schedule 17.09.2013Patient MyPatient = new Patient(); MtPatient.click += PatientClickHandler; private void PatientClichHandler(object sender,EventArgs e) { // Code }
@EduardDumitru .. Моя проблема не в именах и у меня нет с ними конфликтов - person user2151551   schedule 17.09.2013ProcessPatientClickedEvent
? Это ключевой аспект вашей проблемы, и без этой информации мы не сможем угадать реальную проблему, с которой вы столкнулись. И, пожалуйста, подтвердите, что я правильно понял: вы хотите полностью пропустить строки кода C #, которые написаны в теле вашего вопроса? Я правильно понял? - person Eduard Dumitru   schedule 17.09.2013