Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

18.10.2014, 12:52

C# - Aus anderer Form Button abfragen

Hey,

ist es möglich in einer Form (Form1) abzufragen ob in einer anderen Form (Form2) ein Button angeklickt wurde?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

18.10.2014, 12:57

Der übliche Weg so etwas zu lösen sind Events über Delegates. Form1 registriert sich bei Form2 für ein Event. Form1 löst dieses Event aus, wenn der Button gedrückt wurde.
Und immer schön dran denken, dass Form1 sich auch wieder de-registrieren muss, wenn sie geschlossen wird, damit es keine Memory-Leaks gibt (oder aufgerufene Delegates, obwohl die Form schon geschlossen wurde).
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

18.10.2014, 13:00

Und wie registriert sich Form1 für ein Event? :huh:

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

18.10.2014, 13:18

Such einfach nach den C#-Schlüsselwörtern event und delegate.
Allgemein wäre es auch interessant zu wissen, wofür genau das eine Fenster über Klicks auf einem anderen Bescheid wissen muss. Es kann zwar sein, dass die Vorgehensweise nicht falsch ist, es klingt für mich aber ein wenig danach.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

CeDoMain

Alter Hase

Beiträge: 587

Wohnort: Ilmenau

Beruf: Student für Mechatronik

  • Private Nachricht senden

5

18.10.2014, 15:41

Ich löse das immer so, dass es ein Eltern-Fenster gibt, das dann die Owner-Eigenschaft des anderen aus sich selbst festlegt. Dann kannst du im Eltern-Fenster eine Methode definieren und dann im anderen Fenster folgenden Code bei einem Klick ausführen:

C-/C++-Quelltext

1
((Form1)Owner).NameDerMethode();

Ich finde das einfacher zu verstehen, wenn du dich nicht mit Delegaten usw. auskennst... ;)
Mit freundlichem Gruß
CeDo
Discord: #6996 | Skype: cedomain

Lass solche persönlichen Angriffe lieber bleiben, meine sind härter.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

18.10.2014, 16:12

Erhöht allerdings massiv die Abhängigkeiten und führt zu zyklischen Referenzen. Sehr unschön.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige