Я не могу сказать из вашего поста, пытаетесь ли вы вызвать событие из производного класса или нет, но я обнаружил, что вы не можете определить событие в базовом классе и затем вызвать его(непосредственно) в производном классе, по некоторым причинам, которые мне пока не совсем понятны.
Поэтому я определяю защищенные функции в базовых классах для вызова событий (которые определены в этих базовых классах), например:
// The signature for a handler of the ProgressStarted event.
// title: The title/label for a progress dialog/bar.
// total: The max progress value.
public delegate void ProgressStartedType(string title, int total);
// Raised when progress on a potentially long running process is started.
public event ProgressStartedType ProgressStarted;
// Used from derived classes to raise ProgressStarted.
protected void RaiseProgressStarted(string title, int total) {
if (ProgressStarted != null) ProgressStarted(title, total);
}
Затем в производном классе я вызываю RaiseProgressStarted (title, всего) вместо вызова ProgressStarted (заголовок, всего).
Это похоже на долгий путь.Может быть, кто-то знает, как лучше обойти эту проблему.