Frage

Ich bin neu in Benutzersteuerelementen, und während meine eigene Kontrolle zu entwickeln, fand ich ein Problem mit Ereignisse meiner Kontrolle im Eigenschaftenraster zur Entwurfszeit zeigt. Wenn ich einige Ereignisse in meiner Kontrolle haben möchte ich sie in der Immobilie Gittern sehen, und wenn ich einen Doppelklick auf, dass ich für die Kontrollen einen Handler, in der gleichen Art und Weise Microsoft tut haben will.

War es hilfreich?

Lösung

Sie sollten automatisch angezeigt, wenn ich mich nicht irre. Stellen Sie sicher, Sie haben gebaut, um Ihr Projekt obwohl, oder Änderungen werden nicht propagieren Designer zu öffnen. Und stellen Sie sicher, es ist ein public zu Fall. (Private / geschützte Ereignisse sollten zu Recht nicht angezeigt, weil sie nicht zugänglich sind.)

Eine Sache, die Sie tun können Ihre Benutzer-Design-Erfahrung schöner zu machen, ist so etwas wie die folgenden Funktionen ausführen:

    [Description("This event is raised when the user presses the enter key while the control has focus."),
    Category("Key")]
    public event EventHandler EnterPressed;

Die „description“ Bit setzt eine nette Nachricht in der Beschreibung Tafel des Eigenschaftsfensters. Die „Kategorie“ Bit setzt es in einer bestimmten Kategorie (die Standardeinstellung ist Misc. Am Ende).

übrigens, Sie haben keine Sprache oder Umgebung angegeben, so müssen die oben möglicherweise geändert werden, wenn es in Visual Studio 2005 + nicht C # ist.

Andere Tipps

ich in der Regel dieses Muster verwenden, ein benutzerdefiniertes Ereignis in Benutzersteuerelemente zu erstellen:

    #region MyEvent CUSTOM EVENT

    protected virtual void OnMyEvent(MyEventEventArgs e)
    {
        if (MyEvent != null)
            MyEvent(this, e);
    }

    public delegate void MyEventHandler(object sender, MyEventEventArgs e);
    public event MyEventHandler MyEvent;

    public class MyEventEventArgs : EventArgs
    {

    }

    #endregion MyEvent CUSTOM EVENT

Dies hat die gleiche Namenskonvention von Microsoft Ereignissen hat, können Sie in Ihrer Steuer Feuer OnMyEvent, benutzerdefinierte EventArgs haben, behandeln MyEvent von anderen Kontrollen.

Sie sollten Verwendung Delegierten Usercontrol und heben es auf Hauptseite (aspx Seite) .Wenn diese Weise sein hat nicht funktioniert, sollten Sie vorsichtig sein, wenn Register UserControlID.It mit anderen UserControl.Each Usercontrol brauchen eine ID unterscheiden muss.

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