2009-12-17 2 views
14

Was ist der schnellste Weg, um eine rot/grün-Indikator auf einem C# -Form zu zeigen?Rot-grünes Licht Indikatoren in C# .NET Form

Ich dachte ursprünglich über Radiobuttons, aber nicht sicher, wie man die Farbe des Punktes, nur den Vordergrund-/Hintergrundtext einstellt.

Dann dachte ich darüber nach, einen Kreis zu zeichnen. Es konnte keine Toolbox-Form gefunden werden und wollte keinen Code schreiben, nur um den Kreis zu zeichnen.

Grundsätzlich schreibe ich einen kleinen anwendungsspezifischen Monitor, der ein rotes Licht zeigt, wenn bestimmte Dienste ausfallen oder bestimmte Webdienste nicht reagieren.

Danke,

Neal Walters

Dies ist, was ich bisher ein Quadrat-Taste anstelle eines Kreises mit. Der Code ist genau das, was ich will, ich will nur eine runde Form.

 if (allGood) 
     { 
      btnIISIndicator.BackColor = Color.Green; 
     } 
     else 
     { 
      btnIISIndicator.BackColor = Color.Red; 
     } 
+1

Die Idee, die Sie in Ihrer Frage zur Verfügung stellen, ist genau das, was ich brauche! Danke – VSZM

Antwort

16

Es gibt einige ausgezeichnete Symbole und Grafiken für diese Art von Sache ... Hier ist ein Link here. Viel mehr kostenlos oder gegen eine geringe Gebühr.

+1

+1 für die Bereitstellung eines tatsächlichen Links zu Bildern. – alastairs

+0

Da ich ein Coder, kein Künstler Schublade bin, scheint dies am besten. Ich dachte, dass früher eine "Form" oder "Kreis" auf der Werkzeugkiste "in den alten Tagen" war? – NealWalters

+0

FYI - nicht so simpel, wie ich gehofft hatte - ich muss vielleicht eine andere Frage dazu schreiben: {"Es konnten keine Ressourcen gefunden werden, die für die angegebene Kultur oder die neutrale Kultur geeignet sind. Stellen Sie sicher, dass" Resource1.resources "korrekt eingebettet wurde oder zur Kompilierungszeit in die Assembly \ "TFBIC.RCT.Monitor \" gelinkt werden, oder dass alle erforderlichen Satellite Assemblies ladbar und vollständig signiert sind. "} – NealWalters

2

Ich würde nur einen Panel oder PictureBox machen und stellen Sie das Hintergrundbild mit dem einem rot/grünen Licht. Machen Sie die Bilder entweder in PhotoShop/PaintShop/MS Paint oder laden Sie einige Bilder aus dem Internet herunter.

Wenn sich der Status ändert, tauschen Sie einfach das Bild aus.

1

Ich verwende einfach einige Standardbilder und lege sie in eine picturebox. funktioniert hervorragend in unseren Apps.

1

Erstellen Sie rote und grüne Bitmaps und verwenden Sie das Steuerelement PictureBox, um die Bitmaps anzuzeigen.

1

Verwenden Sie ein Bild, aber es gibt einige großartige Symbole zur Verfügung here, so dass Sie nicht wirklich einige machen müssen.

2

Nicht gerade auf die Frage zur Hand verwandt, aber der Code etwas verkürzt werden, um den ternären Operator als solche mit:

btnIISIndicator.BackColor = allGood ? Color.Green : Color.Red; 

Aber das hängt alles von Ihrem (oder Ihrer Organisation) Definition der Lesbarkeit und Wartbarkeit .

+0

Guter Punkt, ich kenne ternären Operator, aber normalerweise vergessen, es zu codieren. – NealWalters

12

Dies ist einfach, verwenden Sie einfach System.Windows.Shapes für das Objekt und System.Windows.Media.Brushes für die Farben.

Für einen Kreis, den Sie folgendes tun:

System.Windows.Shapes.Ellipse circle = new System.Windows.Shapes.Ellipse(); 
circle.Height = 20; //or some size 
circle.Width = 20; //height and width is the same for a circle 
circle.Fill = System.Windows.Media.Brushes.Red; 

Dann können Sie eine Funktion machen Ihren Scheck für Rot und Grün zu tun.

+2

+1 für die einzige Antwort, die eine Möglichkeit bietet, ohne feste Bilder zu tun. Dies ist besonders nützlich, wenn z.B. Die Farbe stammt aus einer Einstellungsdatei. –

0

versuchen Sie es einfach, es funktioniert für mich.

SolidColorBrush solidColor=new SolidColorBrush(); 
    solidColor.Color=Colors.Red; 
ellips_circle.Fill=solidColor; 
+1

Vielen Dank für dieses Code-Snippet, das einige sofortige Hilfe bieten kann. Eine gute Erklärung [würde erheblich verbessern] (// meta.stackexchange.com/q/114762) ihren pädagogischen Wert, indem sie * warum * dies eine gute Lösung für das Problem zeigt, und es für zukünftige Leser mit ähnlichen, nützlich machen würde, aber nicht identisch, Fragen. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen und geben Sie an, welche Einschränkungen und Annahmen gelten. –