Ich muss den Code einer Schaltfläche ausführen, die sich in einem anderen Formular befindet. ist es möglich, es aus einer anderen Form zu tun? Wenn Sie sagen, dass es möglich ist, es öffentlich zu machen, dann:
button_click
? Es braucht zwei Parameter - wie übertrage ich sie? Es ist möglich, ein Steuerelement in Form
public
zu erstellen, aber nicht empfohlen, Sie können Folgendes tun:
1) Deklarieren Sie ein neues Ereignis in der ersten Form (form1) ButtonFirstFormClicked
%Vor%und lösen Sie dieses Ereignis im Ereignishandler Button.Click
aus %Vor%2) In der zweiten Form (form2) abonnieren Sie das Ereignis
%Vor%Viel Glück!
Warum erstellen Sie nicht eine öffentliche Methode in einer gemeinsam genutzten Klasse, die beide click
-Ereignisse ausführen?
Sie können das Steuerelement veröffentlichen, indem Sie die Pseudoeigenschaft "Modifiers" im Formular-Designer ändern.
Sobald die Schaltfläche öffentlich ist, können Sie ihr Click
-Ereignis ausführen, indem Sie die Methode PerformClick
aufrufen, z. %Code%. Sie müssen den Event-Handler nicht direkt aufrufen.
Es könnte jedoch eine bessere Idee sein, eine öffentliche Methode zu erstellen, wie es Dustin Laine vorschlägt.
In der Form, in der der Code ist (firstForm), müssen Sie die Prozedur für die sekundäre Form, wo die sekundäre Schaltfläche ist (btnMyButton), öffentlich und verfügbar machen. Sobald Sie dies erreicht haben, können Sie den Klick-Event-Handler des sekundären Buttons wie folgt mit dem Code in der 1. Form verbinden:
Zweitens, wie oben von Dustin erwähnt, können Sie diesen Code in eine separate Klasse verschieben und dann einfach den Methodenhandler mit beliebig vielen Ereignissen referenzieren.
Jeder Weg wird funktionieren, aber ich stimme Ihnen zu, dass Sie, wenn Sie gutem Design folgen wollen, eine Trennung von Bedenken in Bezug auf Geschäftslogik (Code) und Präsentationsebene (dh Formulare mit Schaltflächen) haben sollten.
// Button in der 2. Form
%Vor%Hoffe, das hilft,
Viel Spaß!
Sie können intern als Ihren Modifikator verwenden, damit Sie einfach auf das Klickereignis zugreifen können.
Zum Beispiel haben Sie ein Klickereignis in form1. anstatt es privat, öffentlich oder geschützt zu machen. setze es so intern Sie können problemlos auf die Methode in anderen Klassen zugreifen. Aber der interne Modifikator ist nur innerhalb der Aktuelles Paket.
Form1
%Vor%Form2
%Vor%