2009-06-16 7 views
2

Ich habe Elemente in einem Listbox-Steuerelement, das ich gerne wiederholt (wenn es zum letzten, wiederhole) Schleife durch und setze den Text auf eine Bezeichnung.Schleife durch Listbox in VB.net oder C# und Set-Werte, um Text zu beschriften?

Ich bin fest, bitte helfen!

+0

Können Sie uns sagen, wie oft Sie diese wiederholen wollen? Für immer? Und warum? –

+0

Ich möchte es für immer wiederholen. Stellen Sie sich vor, Sie mögen es wie ein Festzelt-Nachrichtenbanner - ich möchte wiederholt die neuesten Schlagzeilen drehen und die Schlagzeilen für ein Label festlegen. Die Überschriften würden in der Listbox-Kontrolle sein. Danke! –

Antwort

0

Klingt so, als müssten Sie Eventing statt Polling in einer Schleife verwenden. Weitere Details sind erforderlich.

1

Nicht sicher, was Sie versuchen zu erreichen, aber die folgende Methode wird kontinuierlich durch die Elemente der angegebenen ListBox, die Werte in der angegebenen Label-Steuerelement, von Anfang an, wenn es das Ende erreicht, wird zweimal aktualisieren einen zweiten (C# -Code):

private int _currentIndex = -1; 
private void ShowNextItem(ListBox listBox, Label label) 
{ 
    // advance the current index one step, and reset it to 0 if it 
    // is beyond the number of items in the list 
    _currentIndex++; 
    if (_currentIndex >= listBox.Items.Count) 
    { 
     _currentIndex = 0; 
    } 

    label.Text = listBox.Items[_currentIndex].ToString(); 

    // get a thread from the thread pool that waits around for a given 
    // time and then calls this method again 
    ThreadPool.QueueUserWorkItem((state) => 
    { 
     Thread.Sleep(500); 
     this.Invoke(new Action<ListBox, Label>(ShowNextItem), listBox, label); 
    }); 
} 

es so Aufruf:

ShowNextItem(myListBox, myLabel); 
+0

Fredrik, tack så mycket! :) einwandfrei gearbeitet! –

+0

Gern geschehen/ingen orsak: o) –

Verwandte Themen