Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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# 绘制图表之前,PixelPositionToValue()不起作用_C#_.net_Charts - Fatal编程技术网

C# 绘制图表之前,PixelPositionToValue()不起作用

C# 绘制图表之前,PixelPositionToValue()不起作用,c#,.net,charts,C#,.net,Charts,我的表格上有一些图表,其中一些在你滚动到底部之前是看不见的。我想使图表的水平滚动同步(所有图表上的滚动条应该一起移动)。我可以使用AxisViewChanged事件来完成此操作: chartA.ChartAreas[0].AxisX.ScaleView.Position = chartB.ChartAreas[0].AxisX.ScaleView.Position; 但是,这仅适用于以前绘制的图表。如果我想让它适用于其他图表,我需要将滚动条移动到表单底部,以便所有图表至少绘制一次 问题在于函数

我的表格上有一些图表,其中一些在你滚动到底部之前是看不见的。我想使图表的水平滚动同步(所有图表上的滚动条应该一起移动)。我可以使用
AxisViewChanged
事件来完成此操作:

chartA.ChartAreas[0].AxisX.ScaleView.Position = chartB.ChartAreas[0].AxisX.ScaleView.Position;
但是,这仅适用于以前绘制的图表。如果我想让它适用于其他图表,我需要将滚动条移动到表单底部,以便所有图表至少绘制一次

问题在于函数
chart.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.Y)
在尚未绘制的图表上,函数的结果是
无限
-无限

我在制作图表时使用了
recreacteaxesscale()
,但这没有帮助


我想我需要初始化每个图表,就像它在屏幕上是可见的一样。我应该使用什么函数?

我认为调用chartN.Invalidate应该强制执行绘制事件。您可以设置一个标志,以便在完成计算后立即中止事件。我已尝试使用
Invalidate()
,但没有帮助。是否确实不会调用绘制事件??如果无效或刷新都不会触发它们,我很确定您可以通过调用DrawToBitMap使它们工作。。即使表格上没有图表,也可以这样做。e.Location在您呼叫时的值是多少??这可能是问题吗?TaW,
DrawToBitMap()
确实有效!这似乎是一个错误的方法,因为我必须为控件绘制一个空位图;是的,这是一个暂时的解决办法。我没有时间找出是否有更好的解决方案。我认为调用chartN.Invalidate应该强制执行绘制事件。您可以设置一个标志,以便在完成计算后立即中止事件。我已尝试使用
Invalidate()
,但没有帮助。是否确实不会调用绘制事件??如果无效或刷新都不会触发它们,我很确定您可以通过调用DrawToBitMap使它们工作。。即使表格上没有图表,也可以这样做。e.Location在您呼叫时的值是多少??这可能是问题吗?TaW,
DrawToBitMap()
确实有效!这似乎是一个错误的方法,因为我必须为控件绘制一个空位图;是的,这是一个暂时的解决办法。我没有时间去弄清楚是否有更好的解决办法。。