Frage

Ich habe eine form in C#, hat eine Schaltfläche, die, wenn darauf geklickt wird, möchte ich den hintergrund Bild, um Zyklus durch eine Reihe von Bildern (die ich als Ressourcen für das Projekt).Die Bilder sind mit dem Namen '_1', '_2', etc.und jedes mal, wenn ich auf die Schaltfläche klicke, will ich sein Hintergrundbild zu erhöhen, um die nächste ein und gehen Sie zurück zu "_1", wenn es um den höchsten.Gibt es eine Möglichkeit, dies zu tun?

Ich versuchte, button1.BackgroundImage.ToString() aber das ergibt System.Drawing.Bitmap statt Resources._1 wie ich dachte, es wäre (in welchem Fall ich konnte nur das Letzte Zeichen und wechseln Sie auf, um den hintergrund zu ändern, um die entsprechenden neues Bild).

Vielen Dank für Ihre Hilfe.

War es hilfreich?

Lösung

Warum nicht nur du die Bilder in einem array?

Andere Tipps

Sie konnte Unterklasse Taste und überschreiben Sie die BackgroundImage-Eigenschaft, so dass Sie können besser halten track von der aktuellen Ressource, die für die Bild.Sie könnten auch überschreiben Sie die onclick-Methode intern zu behandeln, Radfahren, um zum nächsten Bild, obwohl das vielleicht ein wenig komisch, wenn die Ressourcen, die verarbeitet werden, die außerhalb Ihrer abgeleiteten Klasse button.

class YourClass
{
    private IEnumerator<Image> enumerator;

    YourClass(IEnumerable<Image> images)
    {
        enumerator = (from i in Enumerable.Range(0, int.Max)
                      from image in images
                      select image).GetEnumerator();
        enumerator.MoveNext();
    }

    public Image CurrentImage { get { return enumerator.Current; } }

    public void OnButtonClick() { enumerator.MoveNext(); }
}

Sie können diesen code verwenden, als backing-Klasse für das Steuerelement unter der Annahme, dass Benutzer nicht auf die Schaltfläche klicken mehr als zwei Milliarden mal.

Nur beachten Sie, dass, sobald dieser Klasse erstellt wird, die Sie nicht ändern können Bild-Liste außerhalb.Wenn Sie möchten, um solche Dinge zu tun, die Sie implementieren müssen Einweg-Muster und entsorgen Sie den Zähler entsprechend.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top