Visual Studio C# Windows Forms... ändern der button-Farbe?
Ich habe ein Formular (siehe screenshot):
Wie Sie sehen können, es ist ein hübsches basic-Formular, mit einem button speichern. Ich habe es programmiert, so dass, wenn eines der Textfelder geändert werden, die Schaltfläche "SPEICHERN" ändert sich die Farbe, so dass seine offensichtlich, dass ich nicht auf speichern geklickt und vergessen Sie nicht zu. Leider einfaches ändern der Hintergrundfarbe der Schaltfläche in rot ist nicht genug, weil seine HÄSSLICH wie die Sünde.
Was kann ich tun, ändern Sie die Farbe der Schaltfläche in rot, aber nicht so hässlich. Wie Sie sehen können, die "BackColor" nicht ändern, dass die gesamte Taste, nur das innere Stück. Die Grenze ist noch immer die gleichen altmodischen transparent Grau.
Die einfachste Möglichkeit wäre, konvertieren Sie die Anwendung nach WPF hätten Sie weit bessere Kontrolle. Denn das ist eine gute Menge von Arbeit, die Sie haben, zu Erben, das button-Steuerelement, und ändern Sie, wie die Schaltfläche zeichnen, wenn die änderung den Wert Hintergrundfarbe nicht tun, was Sie wollen.
Ich würde persönlich halten Sie die Schaltfläche speichern deaktiviert, bis sich etwas verändert hatte. Aktiviert auf geänderte details, deaktivieren Sie es dann wieder auf klicken Sie auf. Nur eine andere alternative 🙂
Ich glaube nicht, dass die bessere Beratung gegeben werden kann, die OP ist "umschreiben, die durchaus Ihre Anwendung"
Er muss nicht "umschreiben", dass die gesamte Anwendung. Alles, was er zu tun hat, ist ein Fenster-Klasse statt eines Win32-Klasse. Wenn Sie eine bessere Lösung bieten.
InformationsquelleAutor Jason Axelrod | 2012-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein wenig
LinearGradientBrush
können gehen einen langen Weg, um erweichen die Härte einer reinen roten Knopf.dann können Sie nur zuweisen des Bilds auf die Schaltfläche
BackgroundImage
Eigenschaft:Ergebnis:
Hinweis: das Zuweisen eines Hintergrundbilds verlieren den Maus-hover-Farben der Taste.
Wie würde ich dann entfernen Sie das Hintergrundbild?
Nur eine einfache
button1.BackgroundImage = null;
funktionieren würde.kann ich entfernen die Grenze von der Taste
Sie können versuchen, mit dem paint-Ereignis der Schaltfläche. Sie werden wahrscheinlich haben, implementieren Sie die Maus hover-und mouse-down-look and feel.
InformationsquelleAutor LarsTech
Andere Lösung wäre das hinzufügen eines Symbol (z.B. Ausrufezeichen) zu den button, anstatt den Benutzer zu informieren, dass die änderungen noch nicht gespeichert worden ist, noch.
InformationsquelleAutor Stefan Paul Noack
Es gibt viele tutorials online, wie man erstellen Sie schöne Knöpfe mit c#. Zum Beispiel dieses erlaubt Ihnen das erstellen von Vista gefällt mir " - Schaltflächen. Schau mal hier: http://www.codeproject.com/Articles/19318/Vista-Style-Button-in-C
Für basic-Farben besuchen Sie diese ALSO Frage:
C#: das Ändern der Button-Hintergrundfarbe hat keinen Effekt
"We're sorry, but the article you are trying to view was deleted at 18 May 2013."
InformationsquelleAutor Hubert Jarema
Können Sie nur verwenden Sie eine der Eigenschaften des Buttons, "FlatStyle". Standardmäßig ist es standard. Aber wenn Sie schalten Sie es auf "Popup", Ihre hintergrund-Farbe wird erweitert um den Bereich der Schaltfläche. Vergleichen Sie die folgenden:
Links standard, rechts-popup
InformationsquelleAutor KyleTheGolfer
Diese funktioniert nicht in WinForms, aber möchten Sie vielleicht, um die Umstellung auf WPF.
Es ist viel bequemer, denn man kann ALLES konfigurieren. (Sogar die Farbe der progressbar)
Edit: Die OP muss nicht komplett neu schreiben seiner Bewerbung.
Er braucht nur zu wiederholen, das layout, den code kann man C&P hatte über den neuen WPF-Projekt, fyi
Edit2: Sie brauchen nicht einmal einen code verwenden, ändern Sie die Farbe einer WPF-button, können Sie einfach definieren Sie ein rotes Feld mit 30% Deckkraft in der XAML-Datei. Es ist ganz einfach, wirklich.
Nein, WPF ist wirklich eine tolle Technik. Aber OP ist mit Winforms, das "umschreiben aller Ihrer Anwendung, zu bewegen, um WPF" beantworten, ist eine wirklich schlechte Antwort.
"Das funktioniert nicht" ist keine wirkliche Antwort, denke ich.
Siehe den edit auf die Antwort für meine Antwort. 😉 Edit: @noah1989 Es ist, weil es zeigt, der OP, die Grenzen der alten WinForms-Plattform und die Vorteile von WPF. Ich begann die Programmierung mit WPF ist ein Monat her, und es ist bereits bezahlt.
Gott sei Dank nicht versucht, zu unterstützen, die nicht mehr richtig? ...richtig?
InformationsquelleAutor Peter W.