C# : Windows Forms

MSuter

Erfahrenes Mitglied
Kann ich aus einer Klasse auf Elemente (z.B. ein Label) zugreifen? D.h. anstelle dass ich mit this.labelname.text auf das Label zugreife müsste es dann irgendwie Form1.label.text heissen. Wenn ich es aber so mache, dann wird der Labeltext nicht verändert!!

Gruss MSuter
 
Hallo,

wenn du Methoden in ausgelagerten Klassen verwenden möchtest müssen diese Methoden statisch sein.

kleines Beispiel:

using System;
using System.Windows.Forms;
using System.Collections;

namespace Kopfrechnen
{

public class FensterListe
{
private static ArrayList internalList = new ArrayList();
// Form der ArrayList hinzufügen
public static void AddForm(Form frm)
{
internalList.Add(frm);
}

// Form aus ArrayList entfernen

public static void Remove(Form frm)
{
internalList.Remove(frm);
if(internalList.Count == 0)
Application.Exit();
}
}
}
 

Argbeil

Grünschnabel
Wenn ich dich richtig verstanden hab willst du aus einer anderen Klasse auf Elemente auf einem Form zugreifen.

Das solltest du nicht tun weil die Klassen dann nicht mehr protierbar sind. Die sauberste Methode wäre, wenn du dir eine public set/get Methode für das Label in deinem Form schreibst, dann kannst du aus externen Klassen drauf zugreifen.
 

Saber

Erfahrenes Mitglied
Original geschrieben von MSuter
Kann ich aus einer Klasse auf Elemente (z.B. ein Label) zugreifen? D.h. anstelle dass ich mit this.labelname.text auf das Label zugreife müsste es dann irgendwie Form1.label.text heissen. Wenn ich es aber so mache, dann wird der Labeltext nicht verändert

Gruss MSuter

Mal ´ne blöde Frage ... aber wieso willst Du das machen?