Forum: PC-Programmierung C# Form programmieren


von Leon E. (adiagi)


Angehängte Dateien:

Lesenswert?

Hi Leute,

ich muss ein Windows Form Programm schreiben ( denke, dass es ganz 
einfach ist aber habe wieder mal Probleme mit nem Lösungsansatz)

und zwar folgendes.

Ich habe eine Form Klasse und eine zusätzliche Klasse. ( siehe Anhang 
"Diagramm")


Die zusätzlichje Klasse soll Informationen von Pfadnamne Aliasname und 
ob die Datei existiert enthalten.

Mein Form sollte so aussehen ( siehe Anhang "Form").

also im rechten Balken soll der Anwender irgendeine Datei auswählen ( 
klick auf symbol dreieck, dann sollte sich der Explorer öffnen), die 
dann im Balken ausgegeben wird. Zusätlich zu dem Dateinamen soll rechts 
ein Aliasname eingetragen werden, den man halt hardcodiert.
immer beim Ausfhren des Programms soll die vorherige Datei, die 
ausgewählt wurde darauf geprüft werden ob sie existiert. Das wars mehr 
oder weniger.

So nun meine Frage.

Gibt es so ein Steuerelement in Windowsforms mit dem man auf klick eine 
dateiauswählen kann, die dann ausgegeben wird? oder muss man das selber 
programmieren.

Geht es dass exists ,alias und pfadname in der extra klasse sind und 
nicht in der Form Klasse?

Vielen Dank

PS: Ich hoffe ich hab euch nicht verwirrt.

: Verschoben durch Admin
von Borislav B. (boris_b)


Lesenswert?

Agit A. schrieb:
> Gibt es so ein Steuerelement in Windowsforms mit dem man auf klick eine
> dateiauswählen kann, die dann ausgegeben wird? oder muss man das selber
> programmieren.

Nein, aber mit drei Steuerelementen solltest du hinkommen:
 - Button
 - Datei-Öffnen-Dialog
 - Ausgabecontrol (z.B. TextBox)

von Leon E. (adiagi)


Lesenswert?

Hi Boris,

ja habe es gerade damit versucht.

Über einen Buton rufe ich einen OpenFileDialog.
Da kann ich die datei auswähelen, aber wie bekomme ich es hin das der 
Pfadnamen dann in einer Listbox ausgegeben wird?

danke

Gruß Agit

von Borislav B. (boris_b)


Lesenswert?

Du bekommst den Pfadnamen vom OpenFileDialog (einfach entsprechende 
Property abfragen).
Deine Listbox hat wiederrum die Möglichkeit, Items hinzuzufügen 
(Items.Add("...)).
Und wenn du jetzt 1 und 1 zusammenzählst: Pfadnamen abfragen und in die 
Item-Collection deiner Listbox einfügen => vola!

von Leon E. (adiagi)


Lesenswert?

Hi Boris,

ok das habe ich alles schön und gut hinbekommen danke nochmal.

Nun will ich aber dass die Pfadangabe von einer anderen Klasse übergeben 
wird. Also nicht von der Form1 klasse. Wie kann die andere Klasse dann 
auf den Pfad zugreifen, wenn es nicht auf die Steuerelemente zugreifen 
kann?

Gruß
Agit

von Leon E. (adiagi)


Lesenswert?

Hi,

und hab noch ne frage (sry)

nehmen wir an ok ich wähle einen pfad mit einem button und speichere den 
Pfadnamen in eine Listbox.

So nun will ich dass der Pfad beim Schließen der Form gespeichert 
bleibt.
Das heißt ich wähle blabla.txt und beende die Form.
nachdem ich die Form wieder öffne soll in der Listbox imme rnoch 
blabla.txt stehen.

Aus dem inernet habe ich folgendes:

Laden des pfades:
string[] listItems = System.IO.File.ReadAllLines(@"items.txt");
listBox1.Items.AddRange(listItems);

Speichern des Pfades
string[] listItems = new string[listBox1.Items.Count];
listBox1.Items.CopyTo(listItems, 0);
System.IO.File.WriteAllLines(@"items.txt", listItems);

dies ist jedoch hardcodiert.

Hat jemand ne andere Lösung.

Vielen Dank

Gruß
Agit

von Borislav B. (boris_b)


Lesenswert?

Das Übergeben kannst du auf verschiedene Weisen machen:
 - Die Form übergibt den Namen als Parameter im Konstruktor deines neuen 
Objekts
 - Deine Form bietet den Pfadnamen als Property an, dein Objekt greift 
dann darauf zu
 - Du hast einen Singleton, der den Pfadnamen bereit hält. Auf diesen 
greift sowohl die Form als auch das Objekt zu
etc.

Für dein zweites Problem gibt es eine schönere Lösung. Deine Anwendung 
kann ohne zusätzlichen Aufwand Daten für dich speichern und automatisch 
wieder laden.
Hier ist das sehr schön beschrieben:

http://www.codeproject.com/Articles/15013/Windows-Forms-User-Settings-in-C

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.