Laden...

[gelöst] Form und Arrays

Erstellt von MasterMax vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.058 Views
MasterMax Themenstarter:in
265 Beiträge seit 2006
vor 15 Jahren
[gelöst] Form und Arrays

Sorry, ich wusste keinen besseren Title...

Also,

ich habe mehrere Forms und möchte mit allen immer folgendes machen:


MyForm.bTraining=true;
MyForm.ShowDialog();
myList.Add(MyForm.iPoints)

Ich habs bis jetzt so gelöst:


List<Form> alForm = new List<Form>();
alForm.Add(new MyForm());//alle Form rein
alForm[0].ShowDialog();

klappt wunderbar, aber ich kann nicht


alForm[0].bTraining=true; 

zuweisen; dazu müsste ich es explizit casten:


var f = alForm[0] as MyForm;
f.bTraining=true;

aber das bringt mir nicht, da ich keine Automatisierung hätte.

Hat jemand einen Vorschlag, wie ich mein Problem elegant lösen könnte? 8)

-=MasterMax=-

Gelöschter Account
vor 15 Jahren

eine gemeinsame basisklasse der forms, die die geminesam gültige funktionalität bereitstellt. stichwort: Polymorphy

J
3.331 Beiträge seit 2006
vor 15 Jahren

Dafür gibt es doch die Vererbung:

public partial class BaseForm : Form
{
  //  alles, was alle Formulare gemeinsam haben sollen,
  //  kommt hierher
}

Dann wird jedes dieser Formulare von BaseForm abgeleitet.

Die Vererbung von BaseForm kann auch nachträglich geändert werden. Du darfst nur nicht vergessen, dass evtl. auch in jeder Designer.cs Anpassungen nötig sind.

Oder habe ich etwas völlig falsch verstanden? Jürgen

MasterMax Themenstarter:in
265 Beiträge seit 2006
vor 15 Jahren

also, z.Z. schauts so aus, dass ich 11 Form (tendenz steigend) habe, die eine Minianwendung enthalten. Diese sollen z.B. entweder alle nacheinander oder ein zufällig ausgewähltes geöffnet werden. Das Einzige was sie gemeinsam haben sind die Variablen bTraining und iPublicPoints.

-=MasterMax=-

MasterMax Themenstarter:in
265 Beiträge seit 2006
vor 15 Jahren

Super, hab die Lösung gefunden:


            List<Form> alForm = new List<Form>();
            alForm.Add(new Farbmischer());
            var f = alForm[0] as PolymorphyForm;
            f.bTraining = true;
            f.ShowDialog();


    public partial class Farbmischer : PolymorphyForm

-=MasterMax=-

Gelöschter Account
vor 15 Jahren

lieber:

List<PolymorphyForm> alForm = new List<PolymorphyForm>();
MasterMax Themenstarter:in
265 Beiträge seit 2006
vor 15 Jahren

Danke, ist geändert!

-=MasterMax=-