最近在做一个检测类的项目,其中需要对一项项的数据做自动检测匹配。就想到了progressSteps 控件。
最初设想的是采用类似图片中的这种方式。一项检测完了提示一项成功与否,其实和progressSteps 展示类似。只不过这个是分表格展示的。后面每一行有个Status 显示状态信息。
在翻看dotnetbar示例时突然看到了这个控件想着这个做一个出来。
添加一个检测控件
private DevComponents.DotNetBar.ProgressSteps progressSteps1_jiance;
首先添加每一个Item
this.progressSteps1_jiance.Items.Clear();
List<String> gasList = new List<string>();
gasList.Add("CH4");
gasList.Add("CO2");
gasList.Add("CO");
gasList.Add("T");
gasList.Add("H");
gasList.Add("O2");
gasList.Add("烟感");
foreach (var item in gasList)
{
StepItem newItem = new StepItem();
newItem.Name = item;
newItem.Text = item;
//newItem.Padding.Top = 8;
//newItem.Padding.Bottom=8;
//newItem.Padding.Left = 8;
//newItem.Padding.Right = 8;
this.progressSteps1_jiance.Items.Add(newItem);
}
运行界面效果:
绑定检测逻辑更改对应的Item的背景色和显示的图标标志(这里使用Symbol来控制更改)。
private void setItemBackColor(string itemName,bool warning) {
List<Color> colors = new List<Color>();
colors.Add(Color.Green);
colors.Add(Color.White);
StepItem tmpItem = (StepItem)this.progressSteps1_jiance.GetItem(itemName);
tmpItem.BackColors = colors.ToArray();
if (warning)
{
tmpItem.BackColors = colors.ToArray();
tmpItem.BackColors[0] = Color.Red;
tmpItem.Symbol ="?";
tmpItem.SymbolColor =Color.Red;
// tmpItem.SymbolSet = DevComponents.DotNetBar.eSymbolSet.Material;
}
else {
tmpItem.BackColors[0] = Color.Green;
tmpItem.Symbol = "?";
tmpItem.SymbolColor =Color.Green;
}
this.BeginInvoke(new Action(() =>
{
this.progressSteps1_jiance.Refresh();
}));
}
这段代码里 使用item的名字来控制是显示绿色的通过和红色的警告不通过的。运行下看看效果。有了:
本文暂时没有评论,来添加一个吧(●'◡'●)