mic*_*ica 8 .net system.drawing mschart
这个问题在MSChart论坛上一直没有得到回答超过一年.
我不断在图表上获得溢出异常.我正在设置我的图表如下:
Run Code Online (Sandbox Code Playgroud)InstrChart.Legends.Clear(); dataArea = InstrChart.ChartAreas.Add("Instr1"); dataArea.AxisX.MajorGrid.Enabled = false; dataArea.AxisY.MajorGrid.Enabled = false; dataArea.CursorX.IsUserSelectionEnabled = true;我正在添加12个系列,每个系列大约10000点.
当我向下缩放以显示每个系列只有3或4个点时会发生异常.在我释放鼠标按钮进行缩放后,我立即得到以下异常:
Run Code Online (Sandbox Code Playgroud)System.OverflowException was caught Message="Overflow error." Source="System.Drawing" StackTrace: at System.Drawing.Graphics.CheckErrorStatus(Int32 status)(等 - 请参阅上面的链接以获取完整的跟踪.)
我已经删除了图表的所有事件处理程序,没有运气停止从eventuall缩放导致此异常.我已经为图表设置了IsUserSelectionEnabled为false,并且在没有运气的情况下完成了代码缩放.
对这个问题的任何帮助都会很棒.干杯.
无论图表的其余部分是如何配置的,无论何时缩小"太远"(其含义可能会有所不同),任何时候都会出现此异常.有几个人报告了这个问题.异常助手表示它在System.Drawing.dll中.
这里有人有任何线索或解决方法吗?
我设置了一个快速测试应用程序,但无法重现。

这是我的系列初始化代码
chart1.Legends.Clear();
Random r = new Random();
for(int i = 0; i < 12; i++)
{
Series series = new Series();
series.ChartType = SeriesChartType.FastLine;
for (int j = 0; j < 10000; j++)
{
series.Points.Add(r.NextDouble() + i + 3*Math.Sin((double)j/300.0f));
}
chart1.Series.Add(series);
}
Run Code Online (Sandbox Code Playgroud)
这是图表初始化代码
chartArea1.AxisX.MajorGrid.Enabled = false;
chartArea1.AxisY.MajorGrid.Enabled = false;
chartArea1.CursorX.IsUserSelectionEnabled = true;
chartArea1.Name = "ChartArea1";
this.chart1.ChartAreas.Add(chartArea1);
this.chart1.Dock = System.Windows.Forms.DockStyle.Fill;
legend1.Name = "Legend1";
this.chart1.Legends.Add(legend1);
this.chart1.Location = new System.Drawing.Point(0, 0);
this.chart1.Name = "chart1";
this.chart1.Size = new System.Drawing.Size(616, 273);
this.chart1.TabIndex = 0;
this.chart1.Text = "chart1";
Run Code Online (Sandbox Code Playgroud)
异常数据是否相关?您是否也为 X 提供值?您的系列使用的值是非常小还是非常大?例如,您是否尝试过将级数设置为简单的正弦波?
另外你用的是什么版本的控件和VS?您的目标框架是什么?
| 归档时间: |
|
| 查看次数: |
2388 次 |
| 最近记录: |