C# MSChart滚动条问题:S

C# MSChart滚动条问题:S,c#,winforms,mschart,C#,Winforms,Mschart,我用滚动条在10秒内查看我的数据, 当我第一次向前滚动数据时,x轴被弄乱了 从0-10到9.994到19.994 然而,如果我点击滚动回到开始,然后再向前 从0-10到10-20,然后继续正常工作, 你知道为什么第一次点击就会出现这种情况吗?我真的搞不懂:(任何建议都将不胜感激,并提前向您表示感谢 这是密码 #region SetupChart() public bool SetupChart(List<Int16> data) { try

我用滚动条在10秒内查看我的数据, 当我第一次向前滚动数据时,x轴被弄乱了

从0-10到9.994到19.994

然而,如果我点击滚动回到开始,然后再向前

从0-10到10-20,然后继续正常工作,

你知道为什么第一次点击就会出现这种情况吗?我真的搞不懂:(任何建议都将不胜感激,并提前向您表示感谢

这是密码

    #region SetupChart()
    public bool SetupChart(List<Int16> data)
    {
        try
        {
            this.view.chart.ChartAreas[0].AxisX.Minimum = 0;//start X-Axis off from 0 seconds

            var chartArea = this.view.chart.ChartAreas[0];
            chartArea.CursorX.AutoScroll = true;
            chartArea.AxisX.ScaleView.Zoomable = true;

            int winOffset = 0;
            int winLength = 10;


            foreach(Int16 element in data)
            {
                this.view.chart.Series["series"].Points.AddXY((double)i/100, (double)element/41);
            }

            chartArea.AxisX.ScaleView.Zoom(winOffset, winLength);//zoom to 10 sec frame
            chartArea.AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.SmallScroll;//disable zoom reset button
            chartArea.AxisX.ScaleView.SmallScrollSize = winLength; //should show in frames of 10 secs (winLength)
            return true;
        }
        catch (Exception ex)
        {
            this.ErrorMessage = ex.Message;
            return false;
        }
    }
#区域设置图()
公共布尔设置图(列表数据)
{
尝试
{
this.view.chart.ChartAreas[0].AxisX.Minimum=0;//从0秒开始启动X轴
var chartArea=this.view.chart.ChartAreas[0];
chartArea.CursorX.AutoScroll=true;
chartArea.AxisX.ScaleView.Zoomable=true;
int winOffset=0;
int winLength=10;
foreach(数据中的Int16元素)
{
此.view.chart.Series[“Series”]Points.AddXY((双)i/100,(双)元素/41);
}
chartArea.AxisX.ScaleView.Zoom(winOffset,winLength);//缩放到10秒帧
chartArea.AxisX.ScrollBar.ButtonStyle=ScrollBarButtonStyles.SmallScroll;//禁用缩放重置按钮
chartArea.AxisX.ScaleView.SmallScrollSize=winLength;//应以10秒的帧显示(winLength)
返回true;
}
捕获(例外情况除外)
{
this.ErrorMessage=ex.消息;
返回false;
}
}

您说的是“10秒”,但您是将x轴数据表示为时间单位,还是仅表示为数字?这是一个老问题,但请尝试设置aChart.ChartAreas(0)。AxisX.IsMarginVisible=False。