Wie kann ich ein Steuerelement mit Parametern aufrufen? Ich habe das gegoogelt, aber nirgendwo zu finden!
aufDies ist der Fehler, den ich bekomme:
Zusätzliche Information: Parameteranzahl stimmt nicht überein.
Und das passiert, wenn ich einfach überprüfe, ob die Texteigenschaft eines Textfeldsteuerelements leer ist oder nicht. Dies funktioniert in WinForms:
%Vor%Es springt von dieser if-Zeile zum catch-Block und zeigt mir diese Nachricht.
So versuche ich, das Steuerelement aufzurufen:
// der Delegierte: privater Delegat void TBXTextChanger (Zeichenfolgetext);
%Vor%Was mache ich falsch? Und seit wann muss ich ein Steuerelement aufrufen, wenn ich nur seinen Inhalt lesen möchte?
Wenn Sie Invoke aufrufen, geben Sie Ihr Argument nicht an ( text
). Wenn der Dispatcher versucht, Ihre Methode auszuführen, muss kein Parameter angegeben werden, und Sie erhalten eine Ausnahme.
Versuchen Sie:
%Vor%Wenn Sie den Wert aus einem Textfeld lesen möchten, verwenden Sie ein Lambda:
%Vor%Reed ist korrekt, aber der Grund, warum Sie dies tun müssen, ist, dass GUI-Elemente nicht Thread-sicher sind und daher alle GUI-Operationen auf dem GUI-Thread durchgeführt werden müssen, um sicherzustellen, dass der Inhalt korrekt gelesen wird. Es ist weniger offensichtlich, warum dies mit einer Leseoperation wie dieser notwendig ist, aber es ist sehr notwendig mit Schreibvorgängen und so erfordert das .NET-Framework nur den Zugriff auf die GUI im GUI-Thread.