我的代碼有一個無法解決的問題:
我有一個堆積柱形圖,其中包含制作圖表的兩個系列的索引 x 值,我需要水平滾動圖表,所以我撰寫了以下代碼:
(首先在初始化部分)
this.CHART.MouseWheel = CHART_MouseWheel1;
(然后是功能部分)
private void CHART_MouseWheel1(object sender, MouseEventArgs e)
{
try
{
if (e.Delta > 0)
{
if (this.CHART.ChartAreas[0].AxisX.ScaleView.Position < this.CHART.ChartAreas[0].AxisX.Maximum)
{
this.CHART.ChartAreas[0].AxisX.ScaleView.Position = this.CHART.ChartAreas[0].AxisX.ScaleView.Position 1;
}
}
else if (e.Delta < 0)
{
if (this.CHART.ChartAreas[0].AxisX.ScaleView.Position > this.CHART.ChartAreas[0].AxisX.Minimum)
{
this.CHART.ChartAreas[0].AxisX.ScaleView.Position = this.CHART.ChartAreas[0].AxisX.ScaleView.Position - 1;
}
}
}
catch { }
}
但由于某種原因,我的最大值this.CHART.ChartAreas[0].AxisX.Maximum超過了系列中的最大點數,所以當我滾動到很多時,我最終會得到這樣的結果:
運行時圖表可視化
我看不到滾動的最大值與系列中的點數之間的任何關系
我也認為我需要告訴你我已經this.CHART.ChartAreas[0].AxisX.IsMarginVisible = true;啟用了。
希望解決這個問題也因為我非常接近完成我的專案。
全部提前
uj5u.com熱心網友回復:
嗨,伙計們,我在嘗試了很多事情之后自己找到了我的問題的答案,主要是需要對系列 X 值進行索引,這使很多事情變得更容易,因為您現在將處理點數和沒有,在我的情況下,一個日期時間值,所以這就是代碼:
private void CHART1_MouseWheel(object sender, MouseEventArgs e)
{
try
{
if (this.CHART1.Series["S1"].Points.Count > 10)
{
if (e.Delta > 0)
{
if (this.CHART1.ChartAreas[0].AxisX.ScaleView.Position < this.CHART1.ChartAreas[0].AxisX.Maximum - this.CHART1.ChartAreas[0].AxisX.ScaleView.Size - 1)
{
this.CHART1.ChartAreas[0].AxisX.ScaleView.Position = this.CHART1.ChartAreas[0].AxisX.ScaleView.Position 1;
}
}
else if (e.Delta < 0)
{
if (this.CHART1.ChartAreas[0].AxisX.ScaleView.Position > 1)
{
this.CHART1.ChartAreas[0].AxisX.ScaleView.Position = this.CHART1.ChartAreas[0].AxisX.ScaleView.Position - 1;
}
}
}
}
catch (System.Exception ex)
{
throw ex;
}
}
我希望我已經幫助了同樣的問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/363191.html
