1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Von Externer Klasse auf Formklasse zugreifen scheitert

Dieses Thema im Forum ".NET Windows Forms" wurde erstellt von Drake, 12. Oktober 2017.

  1. Drake

    Drake Grünschnabel

    Hallo Zusammen,
    ich versuche seit einiger Zeit meine Formfunktion zum laufen zu bekommen. D.h ich möchte von einer Methode einer Klasse auf eine Methode in der Formklasse zugreifen, die ein Label verändern soll, doch leider klappt das nicht so wirklich.

    LG
    Drake


    Code (C#):
    1.        
    2.     public partial class Form2 : Form
    3.     {
    4.         Timer timer = new Timer();
    5.        
    6.         public Form2()
    7.         {
    8.             InitializeComponent();
    9.         }
    10.         public void ShowErrorMessage(String errorMessage)
    11.         {
    12.             timer.Stop();
    13.             this.errorTextLabel.Text = errorMessage;
    14.             timer.Interval = 5000;
    15.             timer.Tick += new EventHandler(ResetLabel);
    16.             timer.Start();
    17.         }
    18.  
    19.         public void ResetLabel(object sender, EventArgs e)
    20.         {
    21.  
    22.             this.errorTextLabel.Text = "";
    23.         }
    24.    }
    Code (C#):
    1. public class DatabaseClass
    2. {
    3.         Form2 form2 =new Form2();
    4.        
    5.         public void deleteFach(String theFach)
    6.         {
    7.             connection = new MySqlConnection(connectionString);
    8.             command = connection.CreateCommand();
    9.             command.CommandText = "SELECT * FROM faecher WHERE user = '" + username + "' AND fach = '" + theFach + "'";
    10.             connection.Open();
    11.             Reader = command.ExecuteReader();
    12.             if (Reader.Read())
    13.             {
    14.                 Reader.Close();
    15.                 command.CommandText = "DELETE FROM faecher WHERE user = '" + username + "' AND fach = '" + theFach + "'";
    16.                 command.ExecuteNonQuery();
    17.             }
    18.             else
    19.             {
    20.             form2.ShowErrorMessage("Was soll das");
    21.         }
    22.  
    23.             connection.Close();
    24.         }
    25. }
     
  2. Spyke

    Spyke Capoeirista Premium-User

    DatabaseClass hat eine eigene Form2 instanz und kennt nicht die welche du verändern/anpassen willst.
    Du müsstest deine Form2 Isntanz die läuft der DatabassClass mit reichen.

    Ist aber allgemein ein eher blödes/schlechtes verhalten.
    Die DatabaseClass sollte nicht wissen für welche UI (oder was auch immer) sie Daten anfordert oder verändert.

    Gib eher den Text aus deleteFach als Fehlertext/Fehlercode etc. zurück.
    Und deine Form2 fragt diesen Rückgabewert ab und zeigt Text an.
     
    Drake gefällt das.
Die Seite wird geladen...