Метод 'xxx' не может быть методом для события, потому что класс, из которого происходит этот класс уже, определяет метод

У меня есть код:

public class Layout : UserControl
{    
    protected void DisplayX_DisplayClicked(object sender, DisplayEventArgs e)
    {
        CurrentDisplay = (CameraPanel)sender;
    }
}

'Расположение' является базовым классом для моих других разметок. Например, мне получили 'Layout1' из базового класса 'Расположение'. Layout1 имеет элемент Display01. Display01 имеет событие DisplayClicked. Я пытаюсь присвоить DisplayX_DisplayClicked через Разработчика Visual Studio к событию DisplayClicked Display01.

public partial class Layout1 : Layout
{
    private CameraPanel Display01;
}

Это дает мне ошибку:

Метод 'xxx' не может быть методом для события, потому что класс, из которого происходит этот класс уже, определяет метод.

Как использовать метод от базового класса как eventhandler производного класса? Действительно ли это возможно? Если так, как. Если не, почему.

9
задан nik 2 July 2010 в 11:33
поделиться

1 ответ

Дизайнер не может справиться с этим, но вы вполне можете сделать это в коде. В конструкторе Layout1 просто напишите:

public Layout1()
{   
    InitializeComponent();
    this.Display01.DisplayClicked += base.DisplayX_DisplayClicked;
}

В качестве альтернативы вы можете позволить дизайнеру сгенерировать метод с именем Display01_DisplayClicked, а затем реализовать его как:

private void Display01_DisplayClicked(object sender, DisplayEventArgs e)
{
    base.DisplayX_DisplayClicked(sender, e);
}

Это намного более подробно, поэтому я бы сделал это первым способом, но это позволит дизайнеру узнать, что для этого события существует обработчик.

11
ответ дан 4 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: