Guten Tag,
Ich schreibe gerade folgendes Programm:
Ein Newsticker der ein RSS-File ausliest, es entsprechend formatiert und es in Form eines Newstickers ausgibt (Also eine automatisch gescrolltes Label).
Nun ist meine Idee den Effekt des Scrollens zu erwirken in dem ich einfach das Label Pixel für Pixel verschiebe. Gibt es dafür auch eine ellegantere Variante oder nur diese?
Hallo ph1l,
hoffe ich verstehe dich nicht falsch:
Was soll das Pixelweise verschieben des Labels bringen ?
Das Label zeigt einen Text an, der in Text-Eigenschaft hinterlegt ist; egal welche Position das Label hat.
Ich würde wahrscheinlich einen Timer nehmen, der alle so-und-so viele ms vom string vorne ein Zeichen abschneidet und hinten eins anhängt. Diesen string einem Label zugewiesen und es sieht so aus, als würde der Text von rechts nach links laufen.
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
Hallo,
hab das zufällig mal vor ein paar Tagen bei CodeProject gesehen.
Der hängt den Buchstaben einfach von Anfang, ans Ende. Denke das ist etwas besser als dein Vorschlag. Wenn du nämlich das Teil verschiebst bist du doch irgendwann am Ende deiner Form (oder hab ich jetzt was falsch verstanden).
Gruß
Snwwolf
Also grundsätzlich hört sich das alles natürlich gut an allerdings müsst ihr wissen, dass ich meine Inhalte aus dem RSS in mehrere Arraylisten schreibe (zwecks dynamischen Arrays). Da ist es schwierig festzulegen immer ein Zeichen abzuschneiden!
Mir ist auch schon das Problem aufgefallen, das das Label ja irgendwann mal fertig ist, aber diesen Zustand kann man bestimmt abfangen und das Label wieder neu durchlaufen lassen! Das ist immoment die einzige Idee die ohne Probleme durchführbar wäre!
Hallo ph1l,
wo ist dass den schwierig? So oder so steht doch den anzuzeigenden Text im Label, richtig?
lbl.Text = lbl.Text.Substring (1) + lbl.Text.Substring (0, 1);
herbivore
Nun ja wenn ich das so nach deinem Beispiel mache (natürlich in einer Schleife) funktioniert das net!
lbl_output.Text = output;
for(int j=0;j<output.Length;j++){
lbl_output.Text = lbl_output.Text.Substring (j+1) + lbl_output.Text.Substring (j, j+1);
}
Hallo ph1l,
lbl_output.Text = output;
for(int j=0;j<output.Length;j++){
lbl_output.Text = lbl_output.Text.Substring (1) + lbl_output.Text.Substring (0, 1);
Thread.Sleep (200)
Application.DoEvents ();
}
sollte gehen.
herbivore
PS: DoEvents ist Mist. Man sollte besser einen Timer verwenden.
Ähm allerdings die Werte in den Klammern wieder mit der Variable die in der FOR-Schlafe hochgezählt wird austauschen oder?! Sonst bringts doch gar nix.
Noch dazu was soll das Thread sein? Ich hab das net als Thread gestartet wenn du das meinst!
Hallo ph1l,
hast du es denn schon mal ausprobiert? Bis zum Beweis des Gegenteils stehe ich zu meinen Konstanten.
Wegen Thread.Sleep könnte ein Blick in die Doku Aufklärung bringen. Auch zu dieser Anweisung stehe ich [in dem Sinne, dass Thread.Sleep nichts damit zu tun hat, dass man einen neuen Thread gestartet haben muss]. 🙂
herbivore
Tut mir leid ich beherrsche leider C# nicht besonders meine Programmierfähigkeiten liegen eher bei Java deshalb hatte ich eben den Hänger mit dem Thread! Habs hinbekommen vielen Dank!
Hallo ph1l,
irgendwie waren meine Programmierfähigkeiten 2005 auch noch nicht so ganz auf der Höhe. Zumindest, was die Verwendung von DoEvents und Thread.Sleep im GUI-Thread betrifft. Heute würde ich das per Timer machen. Mehr Infos unter [FAQ] Warum blockiert mein GUI?
herbivore
Ein bisschen OT - was ich total cool fände, wäre ein Newsticker, der in der Taskleiste scrollt und die Neuigkeiten anzeigt ...
Wie sieht das denn bei Deinem aus? Alternativ - kennt jemand ein entsprechendes Tool?
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Hallo Golo,
schreib ein Form, minimiere das und programmiere es so, dass es minimiert bleibt. Lass dann den Titel des Forms per Timer rotieren und schon hast du, was du willst.
herbivore
Naja, ich hatte mir das schon etwas stylischer vorgestellt ... eher so wie die Desktopsuche, dass das Label direkt in der Taskleiste sitzt als Explorer-Extension ...
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
hi,
ich glaub jetzt darf keiner mehr fragen wie man einen newsticker erstellt 🙂
Beispiel code zum erstellen eines NewsTicker
Newsticker in c# windows program
zufällig bin ich auf diesen beitrag gestoßen, weil ich eine lösung suche labels mehrfarbig darzustellen. (habs immer noch nicht gefunden)
gruss
ahmedr
So haben sie mit dem Kopf und dem Mund den Fortschritt der Menschheit geschaffen. Doch davon mal abgesehen und Bei Lichte betrachtet sind sie im Grund noch immer die alten Affen.
Kästner
z.b der Titel sollte rot und der description sollte blau sein.
So haben sie mit dem Kopf und dem Mund den Fortschritt der Menschheit geschaffen. Doch davon mal abgesehen und Bei Lichte betrachtet sind sie im Grund noch immer die alten Affen.
Kästner
die 2. mögl. ist für mich schlüssiger als die 1.
Galileo Openbook Visual C# 2005
vor lauter bäumen sieht man den wald nicht!
würde da nicht mein arbeitsspeicher explodieren 8o
ich frag deshalb weil ich ca. 100 news strings habe. ich müsste 100 news neu zeichnen.
So haben sie mit dem Kopf und dem Mund den Fortschritt der Menschheit geschaffen. Doch davon mal abgesehen und Bei Lichte betrachtet sind sie im Grund noch immer die alten Affen.
Kästner