如何实现c sharp winform中chart控件中若series【0】的值大于series【1】的值,则series【1】变为红色.
时间: 2024-01-11 16:44:22 浏览: 75
嗨!感谢您的提问。对于您的问题,可以通过以下代码实现:
```C#
if (chart1.Series[0].Points[0].YValues[0] > chart1.Series[1].Points[0].YValues[0])
{
chart1.Series[1].Color = Color.Red;
}
```
请注意,以上代码只适用于仅包含一个数据点的情况。如果您的序列中包含多个数据点,需要对所有数据点进行循环遍历,以确定序列中的最大值和最小值,然后才能更改序列的颜色。希望这可以帮助您!
相关问题
如何实现c sharp winform中chart控件中若series【0】的值大于series【1】的值,则series【1】变为红色
您可以通过在chart控件中设置Series属性中的CustomProperties参数来实现。具体操作是,在Series属性中选择Series【1】,然后在CustomProperties参数中添加以下代码:
"PointWidth=0.6, DrawingStyle=Cylinder,LabelStyle=Top,Color=Red"
这将使Series【1】的图表类型为圆柱形,颜色设置为红色,当Series【0】的值大于Series【1】的值时,Series【1】将变为红色。
如何实现c sharp winform中chart控件中若series【0】的每一个值大于series【1】的对应值,则series【1】变为红色
您可以使用以下代码实现:
```csharp
private void chart1_PostPaint(object sender, ChartPaintEventArgs e)
{
var series0 = chart1.Series[0].Points;
var series1 = chart1.Series[1].Points;
for (int i = 0; i < series0.Count; i++)
{
if (series0[i].YValues[0] > series1[i].YValues[0])
{
series1[i].Color = Color.Red;
}
}
}
```
这里监听了 `chart1` 的 `PostPaint` 事件,在事件中判断 `Series[0]` 中每一个数据点的值是否大于对应的 `Series[1]` 中的值,如果是,则将 `Series[1]` 该数据点的颜色改为 `Red`。需要注意的是,该代码需要在合适的时机绑定到 `chart1` 的 `PostPaint` 事件上。
阅读全文