Entwickler-Ecke

Basistechnologien - Titelleiste im Formular ändern


Ritzeratze - Mo 24.02.14 10:00
Titel: Titelleiste im Formular ändern
Moin,

Ich möchte in der Titelleiste eines Formularfensters den vollständigen Pfad einer Datei angeben.
Den Dateinamen extrahiere ich aus einem Öffnen Dialog.
Das Ergebnis sieht dann so aus: System.IO.Path.GetFullPath(openFileDialog1.FileName);

Wenn ich mehrere Dateien aus einen Dialog auswähle, und diese in einer listbox ablege und als Bilderschau starte,
dann möchte ich in der Titelleiste neben dem Pfad un den Dateinamen auch noch die aktuelle Anzahl der Bilder angezeigt bekommen.
Bsp: c:\Verz\Dateiname Bild 1 von x

Gibt es dafür auch eine Funktion oder muss ich da selber was basteln?

Gruss Ritze

Moderiert von user profile iconTh69: Titel geändert (Tittel -> Titel ;-).
Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Christian S. - Mo 24.02.14 10:09

Für was genau suchst Du jetzt eine Funktion? :gruebel:


Ritzeratze - Mo 24.02.14 10:39

Hallo Christian,

wie bekomme ich die Anzeige Bild 1 von x hin.


Christian S. - Mo 24.02.14 10:47

Bin mir nicht sicher, ob Du wirklich das hier meinst:

C#-Quelltext
1:
Text = "1 von x"//Text-Eigenschaft des Formulars setzen                    


Ritzeratze - Mo 24.02.14 12:45

Ja, nur muss das automatisch passieren. Die Dateien die ich für eine Vorschauanzeige über den Dialog auswähle,
werden in eine listbox abgelegt. (das kann eine oder auch mehrere sein). Über eine Timerfunktion wird dann jedes Bild
im vorgegebenen Interval angezeigt. Dabei soll neben Pfad und Name der Datei auch Bild 1 von x angezeigt werden.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
 private void openFileDialog2_FileOk(object sender, CancelEventArgs e)
    {
      //Array Typ string anlegen und die ausgewählten Dateien ins Array kopieren
      string[] dateien = openFileDialog2.FileNames;

      //wenn sich noch Einträge im Listenfeld befinden, erst löschen. 
      if (listBoxfileName.Items.Count != 0)
      {
        listBoxfileName.Items.Clear();
      }
      // jetzt die Dateinamen ins Listenfeld kopieren
      foreach (string datei in dateien)
        listBoxfileName.Items.Add(datei);
    }


Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt


Th69 - Mo 24.02.14 12:56

Hallo,

dann mach das doch :gruebel:

Du mußt einfach nur in der Timer-Methode den Titeltext ändern...


Ritzeratze - Mo 24.02.14 16:57

Jo, das funktioniert auch alles. Hänge nur fest wie ich die Anzahl der Listboxeinträge in die Titelzeile bekomme.

Gruss Ritze


Ralf Jansen - Mo 24.02.14 17:02


C#-Quelltext
1:
this.Text = string.Format("1 von {0}", dateien.Length);                    


Ritzeratze - Di 25.02.14 14:15

Moin,

OK, das funktioniert soweit das mir die Gesamtanzahl der Dateien angezeigt werden.
Jedes Bild soll für eine bestimmte Zeitdauer angezeigt werden. Dabei soll in der
Fenstertiteleiste z.B. bei 2 Bilder folgendes angezeigt werden.
Bild1: Bild 1 von 2 c:\Verz\Name
Bild2: Bild 2 von 2 c:\Verz\Name

Über SelectedIndex der Listbox funktioniert das nicht.

Gruss Ritze


Christian S. - Di 25.02.14 14:25

Irgendeinen Index wirst Du ja aber haben, sonst könntest du die Bilder ja nicht anzeigen. Den schreibst Du dann halt in den String.


Ritzeratze - Di 25.02.14 17:59

Hm,

dabei kommt schon ein wenig verwerrtbares raus allerdings nicht so in der Form wie erhofft.


C#-Quelltext
1:
Vorschau.Text = "Vorschau" + " - " + "Bild " + "von " + listBoxfileName.Items.Count + listBoxfileName.SelectedIndex +  listBoxfileName.SelectedItem.ToString();                    


Geht es auch anders ?

Gruss Ritze

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Di 25.02.14 18:01

Es geht am Besten so, wie Ralf es Dir gezeigt hat ...


Ritzeratze - Di 25.02.14 18:19

Nein ,das funktioniert leider nicht.
Hier wird nur die gas erste Element angezeigt.
Ich brenötige aber alle


Christian S. - Di 25.02.14 18:25

Ich möchte Dir dringend empfehlen, nicht nur stumpf zu übernehmen, was man Dir hier vorsetzt, sondern Dich auch damit zu beschäftigen! Dann hättest Du schon sehr früh in der Doku zu String.Format [http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=EN-US&k=k(System.String.Format);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true] gesehen, wie man das mit mehr als einem Parameter macht ...


Th69 - Di 25.02.14 19:18


C#-Quelltext
1:
"Reihenfolge" + "wichtig" + "Die" + "ist" + "!"                    


Ritzeratze - Di 25.02.14 19:46

Danke Christian,

das ist schon klar. Im dem Kontzext funktioniert das aber nicht was Ralf gezeigt hat.
Ich darf hier nur mit den Elementen der listbox agieren.
Ich habe es ja hinbekommen. allerdings wird das erste Bild immer als Nulltes Element angegeben, was ja auch richtig ist.
Meine Frage beruhte darauf, wie ich das nullte Element in der Ausgabe als erste angeben kann.


Gruss Ritze


Christian S. - Di 25.02.14 20:03

So, mal was grundsätzliches:

user profile iconRitzeratze hat folgendes geschrieben Zum zitierten Posting springen:
dabei kommt schon ein wenig verwerrtbares raus allerdings nicht so in der Form wie erhofft.
[...]
Geht es auch anders ?



user profile iconRitzeratze hat folgendes geschrieben Zum zitierten Posting springen:
Hier wird nur die gas erste Element angezeigt.
Ich brenötige aber alle


user profile iconRitzeratze hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe es ja hinbekommen. allerdings wird das erste Bild immer als Nulltes Element angegeben, was ja auch richtig ist.
Meine Frage beruhte darauf, wie ich das nullte Element in der Ausgabe als erste angeben kann.



Wie sollen wir denn bitte aus den ersten beiden Zitaten raten, dass das im dritten Zitat gemeint ist? Wenn Du Deine Fragen nicht so formulierst, dass man sie überhaupt beantworten *kann*, dann hat irgendwann auch niemand mehr Lust dazu!



Nun zu Deiner Frage: Du kannst doch einfach statt dem Index, Index+1 in den String schreiben. Um es so zu machen, wie Ralph es Dir gezeigt hat:


C#-Quelltext
1:
string.Format("{0} plus 1 ist {1}", eineZahl, eineZahl+1);                    


Ritzeratze - Di 25.02.14 20:23

Danke, für Eure Antworten,

habe mir anders geholfen.