簡體   English   中英

Mschart-條形圖未在C#中更新

[英]Mschart - Bar Chart Not Updating in C#

在我的項目中,值每1秒更新一次; 基於這些值,我正在繪制條形圖。 發生的事情不是更新和繪制實時值。 例如,如果Value為(30,10)則會進行繪制。 如果值為(30,45)則會更新並繪制。 如果值為(30,5)圖表不會更新,也不會獲得圖表。

請幫我嘗試過Chart1.Series["Series1"].Points.Clear(); 但這不起作用,因為我的值每1秒更新一次。

似乎您需要為圖表Axis-Y設置最小值和最大值,或者,如果願意,請使該軸自動重置其最小值和最大值。

如果您為Axis-Y設置了特定的最小值和最大值,則圖表Axis-Y不會自動更改其值,並且當您向圖表中添加新點時,Axis-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的間隔設置為1000 ms,並將其Enabled設置為true 處理表單的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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM