Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
缩放后缺少C#图表Y间隔线_C#_Charts_Intervals_Yaxis - Fatal编程技术网

缩放后缺少C#图表Y间隔线

缩放后缺少C#图表Y间隔线,c#,charts,intervals,yaxis,C#,Charts,Intervals,Yaxis,我对C#Chart(在System.Windows.Forms.DataVisualization.Charting命名空间中)仍然有问题。 当我在Y轴上缩放时,有时不会重画间隔线。 请看下图,0下缺少间隔线 通常情况下,不会出现问题,会绘制11条间隔线 private void chart1_AxisViewChanged(object sender, ViewEventArgs e) { if ((e != null) && (send

我对C#Chart(在System.Windows.Forms.DataVisualization.Charting命名空间中)仍然有问题。 当我在Y轴上缩放时,有时不会重画间隔线。 请看下图,0下缺少间隔线

通常情况下,不会出现问题,会绘制11条间隔线

        private void chart1_AxisViewChanged(object sender, ViewEventArgs e)
    {
        if ((e != null) && (sender != null))
        {
            // on ne récupère que les évènement concernant l'axe Y. L'axe X se gère tout seul car il est unique
            if (e.Axis.AxisName.ToString() == "Y")
            {
                // AxisY.ScaleView.ViewMinimum is the minimum Y axis value displayed. It contains the offset to apply to label, grid and interval on Y axis
                e.ChartArea.AxisY.IntervalOffset = (e.ChartArea.AxisY.Interval - e.ChartArea.AxisY.ScaleView.ViewMinimum) % e.ChartArea.AxisY.Interval;

                // To update Y axis label, major grid and interval. 
                e.ChartArea.AxisY.Interval = (e.ChartArea.AxisY.ScaleView.ViewMaximum - e.ChartArea.AxisY.ScaleView.ViewMinimum) / 11;

            }
        }
    }
以上是我的axisViewChanged事件

Y轴声明如下

chartArea1.AxisY.Interval = (sens.dMaximumValue - sens.dMinimumValue)/11.0;
        chartArea1.AxisY.IntervalOffsetType = DateTimeIntervalType.Number;
        chartArea1.AxisY.IntervalType = DateTimeIntervalType.Number;
        chartArea1.AxisY.LabelStyle.Format = ".000";
        chartArea1.AxisY.MajorGrid.LineColor = Color.White; // Color.DarkViolet;
        chartArea1.AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
        chartArea1.AxisY.MajorTickMark.Enabled = false;
        chartArea1.AxisY.Maximum = sens.dMaximumValue*1.1;
        chartArea1.AxisY.Minimum = sens.dMinimumValue*1.1;
        chartArea1.AxisY.ScaleView.MinSize = 0.01D;
        chartArea1.AxisY.ScaleView.SmallScrollMinSize = 0.001D;
        chartArea1.AxisY.ScrollBar.BackColor = Color.White;
        chartArea1.AxisY.ScrollBar.ButtonColor = Color.LightGray;
正如你们所看到的,它被声明为数字,我认为这是正确的

当这个问题出现时,如果我点击滚动条,11间隔被正确地重新绘制


有什么方法解决了这个问题吗?

当您设置
e.ChartArea.AxisY.Interval
时,是否也可以设置
…MajorGrid.Interval
?另外:如果我单击滚动条,11间隔将正确地重新绘制。你点击哪里?是视图再次更改,还是只需单击电梯而不移动它?您还可以在图表区域上强制执行
重新计算eAxesCale
。。或者简单地尝试一下常见的怀疑:
Refresh()
Invalidate()
Update()
。您好,我已经尝试添加了e.ChartArea.AxisY.MajorGrid.Interval=e.ChartArea.AxisY.Interval,但结果相同。我还尝试过重新计算EAXESSCALE,效果如何。但是我会尝试Refresh()和Update(),并告诉您是否有任何改进。当我单击滚动条(在上/下箭头上)时,图表区域将以正确的间隔数重新绘制。