Kann ein Click-Ereignis von einem anderen Formular ausgelöst werden?

7

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:

  1. Wie deklariere ich eine Kontrolle öffentlich?
  2. Wie gebe ich die richtigen Ereignisse in button_click ? Es braucht zwei Parameter - wie übertrage ich sie?
l--''''''---------'''''''''''' 05.11.2010, 22:49
quelle

5 Antworten

4

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!

    
Homam 05.11.2010, 23:14
quelle
14

Warum erstellen Sie nicht eine öffentliche Methode in einer gemeinsam genutzten Klasse, die beide click -Ereignisse ausführen?

    
Dustin Laine 05.11.2010 22:53
quelle
1
  1. Sie können das Steuerelement veröffentlichen, indem Sie die Pseudoeigenschaft "Modifiers" im Formular-Designer ändern.

  2. 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.

    
Jesse McGrew 05.11.2010 22:59
quelle
1

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ß!

    
Doug 05.11.2010 22:57
quelle
1

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%     
Rye 06.11.2010 06:08
quelle

Tags und Links