C#.NET表格中的红绿灯指示灯

时间:2009-12-17 17:33:14

标签: c# winforms

在C#表单上显示红色/绿色指示灯的最快方法是什么?

我最初考虑使用单选按钮,但不确定如何设置点的颜色,只设置前景/背景文本。

然后我考虑画一个圆圈。无法找到工具箱形状,并且不想仅仅为了绘制圆圈而编写代码。

基本上,我正在编写一个特定于应用程序的监视器,如果某些服务关闭,或某些Web服务没有响应,则会显示红灯。

谢谢,

Neal Walters

这是我到目前为止使用方形按钮而不是圆形。代码正是我想要的,我只想要一个圆形。

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

8 个答案:

答案 0 :(得分:19)

这很简单,只需使用System.Windows.Shapes表示对象,System.Windows.Media.Brushes表示颜色。

对于圆圈,您可以执行以下操作:

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;

然后你可以创建一个功能来检查红色和绿色。

此外,您还可以使用颜色的十六进制值:

circle.Fill = new System.Windows.Media.SolidColorBrush((Color)ColorConverter.ConvertFromString("#RRGGBB"));

答案 1 :(得分:17)

这种事情有一些优秀的图标和图形......这是一个链接here。还有更多免费或一些小额费用。

答案 2 :(得分:3)

我只需制作一个面板或PictureBox并将背景图像设置为红色/绿色光。在PhotoShop / PaintShop / MS Paint中制作图像或从网上下载一些库存图像。

每当状态发生变化时,只需将图像交换出来。

答案 3 :(得分:2)

与手头的问题并不完全相关,但使用三元运算符可以缩短您的代码:

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

但这完全取决于您(或您组织)对可读性和可维护性的定义。

答案 4 :(得分:1)

我只是使用一些标准图片并将它们放在picturebox中。在我们的应用程序上运行良好。

答案 5 :(得分:1)

创建红色和绿色位图,并使用PictureBox控件显示位图。

答案 6 :(得分:1)

使用图片,但有一些很棒的图标here,所以你不必实际制作一些。

答案 7 :(得分:0)

试试这个对我有用。

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