Frage

Ich habe eine WinForms-Steuerelement erstellen, die von System.Windows.Forms.UserControl erbt ... Ich habe über die Kontrolle einige benutzerdefinierte Ereignisse, die ich der Verbraucher meiner Kontrolle möchte in der Lage sein zu sehen. Ich bin nicht in der Lage, tatsächlich meine Events in der Registerkarte Ereignisse des Fensters Eigenschaften während der Entwurfszeit zu zeigen. Das bedeutet, der einzige Weg, um die Ereignisse zuordnen ist programmatisch schreiben

myUserControl.MyCustomEvent += new MyUserControl.MyCustomEventHandler(EventHandlerFunction);

Das ist gut für mich, aber ich denke, wenn jemand anderes kommt mein Usercontrol zu verwenden, sie werden nicht wissen, dass diese Ereignisse existieren (es sei denn, sie die Bibliothek doco lesen ... ja rechts). Ich weiß, dass das Ereignis angezeigt wird Intellisense verwenden, aber es wäre schön, wenn es auch im Eigenschaften-Fenster zeigen.

War es hilfreich?

Lösung

Stellen Sie sicher, dass Ihre Veranstaltungen wie öffentliche ausgesetzt sind. Zum Beispiel ...

[Browsable(true)]
public event EventHandler MyCustomEvent;

Andere Tipps

Eine Lösung mit Delegierten. Zum Beispiel habe ich für eine benutzerdefinierte Listview, das Element hinzugefügt Ereignis zu behandeln: Erklären Sie Ihre Delegierten:

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

dann das Ereignis erklären, die die Delegierten verwenden:

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

Hinweis: ItemEventArgs ist eine benutzerdefinierte EventArgs

Hope kann Ihnen helfen, funktioniert gut für mich

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top