Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Button aus einer Hilfsklasse auslösen
wasloss
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Button aus einer Hilfsklasse auslösen

beantworten | zitieren | melden

Hallo zusammen,
vorab ich bin ein Neuling in C# und beschäftige mich mit dem Programmieren auch noch nicht zu lange ;-)

Ich arbeite an einer kleinen Windows Forms Anwendung, leider stehe ich an einen Punkt an dem ich nicht mehr weiter komme. Die GUI soll alle Buttons im Ablauf einer Funktion sperren und nach Ablauf wieder freigeben. Die Logik befindet sich in einer Hilfsklasse, hier musste ich auf die Funktion in der Form zugreifen und eine Funktion disableButtons() auslösen. Nach etwas Recherche im Forum weiß ich schon mal, dass ich mit den Delegates und EventHandlern arbeiten muss. Leider komme ich mit der Implementierung anhand der Beispiele nicht klar, könnt mir jemand bitte auf den Sprung helfen. Das Ganze sieht in verkürzter Fassung so aus:



public Helper ()
{
   public void function()
   {
		 try
		{
			disableButtons();
		}
		catch 
		{
			enableButtons();
		}

		finally
		{
		   enableButtons();
		}
   }
}

public class Form1 : Form
{
	 public void disableButtons(code);
	 public void enableButtons(code);
}

Ich bedanke mich herzlich für Eure Unterstützung!

VG wasloss
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von wasloss am .
private Nachricht | Beiträge des Benutzers
bredator
myCSharp.de - Member



Dabei seit:
Beiträge: 368

beantworten | zitieren | melden

Du könntest auch eine Referenz in die Hilfsklasse reichen und mit einer relativ einfachen Anweisung die Buttons an- oder abschalten:

foreach (Control c in Controls)
{
    if (c.GetType() == typeof (Button))
    {
        ((Button) c).Enabled = false;
    }
}
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5963
Herkunft: Leipzig

beantworten | zitieren | melden

Hi wasloss,
Zitat von wasloss
Nach etwas Recherche im Forum weiß ich schon mal, dass ich mit den Delegates und EventHandlern arbeiten muss. Leider komme ich mit der Implementierung anhand der Beispiele nicht klar, könnt mir jemand bitte auf den Sprung helfen.

Hast du schonmal einen Blick in Erstellen von Ereignishandlern in Windows Forms geworfen? Dort sollte alles Wissenswerte beschrieben sein.

Ansonsten ist try/catch/finally für die Behandlung von Exceptions gedacht, nicht jedoch für die Anwendungslogik. In deinem Fall sollten vor dem Aufruf der eigentlichen Funktion die Buttons gesperrt, die Funktion dann in einem Backgroundworker ausgeführt (damit die Benutzeroberfläche weiterhin auf Benutzereingaben reagieren kann), und nach dem Beenden über das BackgroundWorker.RunWorkerCompleted-Ereignis die Buttons wieder aktiviert werden.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
wasloss
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen,

@bredator versuche es so.

@MrSparkle, danke schön für den Tipp, das ändere ich noch ab.

VG wasloss
private Nachricht | Beiträge des Benutzers