Mschart - 在 C# 中不更新条形图

Mschart - Bar Chart Not Updating in C#

在我的项目中,值每 1 秒更新一次;基于我正在绘制条形图的值。发生的事情是它没有更新和绘制实时值。 例如 如果值为 (30,10),它会绘制。 如果值为 (30,45),它会更新并绘制。 如果值为 (30,5) 图表不更新且不获取图表。

请帮忙做什么 我试过了 Chart1.Series["Series1"].Points.Clear(); 但这不起作用,因为我的值每 1 秒更新一次。

您似乎需要为图表设置最小值和最大值 Axis-Y 或者,如果您愿意,可以让轴自动重置其最小值和最大值。

如果您为 Y 轴设置特定的最小值和最大值,则图表 Y 轴不会自动更改其值,并且当您向图表添加新点时,Y 轴值不会更新,只会更新积分将更新:

chart1.ChartAreas[0].AxisY.Minimum = 0;
chart1.ChartAreas[0].AxisY.Maximum = 200;

您还可以将图表设置为自动更改 Aixs-Y 的范围,这样 Axis-Y 会更新它的最小值和最大值,并且您的图表 Axiy-Y 会发生变化:

chart1.ResetAutoValues();
//Or this
//chart.ChartAreas[0].RecalculateAxesScale()

举个例子:

在表格上输入 ChartTimer。设置Timer的时间间隔为1000ms,设置Enabledtrue。处理 Load 表单事件和 Tick 定时器事件并编写这些代码:

private void From1_Load(object sender, EventArgs e)
{
    chart1.Series.Clear();
    chart1.Series.Add("Serie1");
    chart1.ChartAreas[0].AxisY.Minimum = 0;
    chart1.ChartAreas[0].AxisY.Maximum = 200;
}

private void timer1_Tick(object sender, EventArgs e)
{
    int y = new Random().Next(0, 200);
    chart1.Series[0].Points.Clear();
    chart1.Series[0].Points.AddXY(30, y);
}