Laden...

Event in Form aus Klasse starten

Erstellt von icolor vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.104 Views
Thema geschlossen
I
icolor Themenstarter:in
115 Beiträge seit 2008
vor 11 Jahren
Event in Form aus Klasse starten

Hallo Leute,
ich tu mich beim Umsteigen von Visual Baisc 6 auf C# grade ein wenig schwer.

Ich möchte aus einer Klasse heraus in einem Formular eine Funktion anstoßen.
Also habe ich in der Klasse folgendes angelegt:

public delegate void KennwortDouble(Boolean visible);
        public static event KennwortDouble OnKennwortDouble;

Meine Frage jetzt. Wie kann ich das weiter benutzen? Ich habe bislang keinen für mich verständlichen Text zu Delegaten gefunden 😦

Ich möchte halt in der Loginmaske ein Eingabefeld sperren oder freischalten, je nachdem was die Klasse zurückgibt.

Ich wäre für kurze Hilfen sehr offen.

C
258 Beiträge seit 2011
vor 11 Jahren

Du solltest für events immer EventHandler delegates verwenden / eine eigene EventArgs Klasse definieren.

Und das Prefix "On" steht für die Methode dein ein event feuert nicht für das event Selbst.

 public static event EventHandler<EventNameEventArgs> EventName;

        public class EventNameEventArgs : EventArgs
        {
            private bool visible;

            public bool Visible
            {
                get { return visible; }
                set { visible = value; }
            }
        }

        public void OnEventName(bool visible)
        {
           var handle = EventName;
            if(handle != null)
                handle(this,new EventNameEventArgs { Visible = visible };
        }

sprachen mischen finde ich Persönlich immer furchtbar hässlich 😉

I
icolor Themenstarter:in
115 Beiträge seit 2008
vor 11 Jahren

Gut, ich danke Dir.
Ich habe jetzt folgenden Code:


namespace Test
{
    public class EventNameEventArgs : EventArgs 
    {
        private bool visible;

        public bool Visible
        {
            get { return visible; }
            set { visible = value; }
        }
    }

    public partial class TheLogin 
    {
        public static event KennwortDouble<EventNameEventArgs> OnKennwortDouble;

        public void OnKennwortDouble(bool visible)
        {
                  // bla bla
        }

Dann bekomme ich aber den Fehler: The type or namespace name 'KennwortDouble' could not be found ....

Was mache ich denn jetzt noch falsch?

D
96 Beiträge seit 2012
vor 11 Jahren

Was mache ich denn jetzt noch falsch?

public static event KennwortDouble<EventNameEventArgs> OnKennwortDouble

muss heißen:

public static event EventHandler<EventNameEventArgs> OnKennwortDouble;

Events

4.221 Beiträge seit 2005
vor 11 Jahren

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

Thema geschlossen