Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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# 使用PictureBox数组绘制图形_C#_Arrays_Graph_Picturebox - Fatal编程技术网

C# 使用PictureBox数组绘制图形

C# 使用PictureBox数组绘制图形,c#,arrays,graph,picturebox,C#,Arrays,Graph,Picturebox,我目前正在写一个程序,我需要画一些图表。我需要在这些图中有一点具体的布局。例如,我有三个由用户定义的以天为单位的阶段。例如,开始阶段为30天,中间阶段为40天,结束阶段为20天。这些阶段我希望在图表中有不同的背景颜色。我通过绘制画框并根据舞台长度调整其宽度来实现这一点。同样,对于总长度中的每一天,我想画一条垂直线,对于图中的水平线数量,我取最大值y=f(x) y=f(x)需要绘制在图形上。因为我在背景上使用了很多图片框,所以我不能使用graphics.DrawLine,因为它将在图片框后面绘制。

我目前正在写一个程序,我需要画一些图表。我需要在这些图中有一点具体的布局。例如,我有三个由用户定义的以天为单位的阶段。例如,开始阶段为30天,中间阶段为40天,结束阶段为20天。这些阶段我希望在图表中有不同的背景颜色。我通过绘制画框并根据舞台长度调整其宽度来实现这一点。同样,对于总长度中的每一天,我想画一条垂直线,对于图中的水平线数量,我取最大值y=f(x)

y=f(x)需要绘制在图形上。因为我在背景上使用了很多图片框,所以我不能使用graphics.DrawLine,因为它将在图片框后面绘制。所以我决定用一组图片框来排成一行;)它工作得很好,但显然现在加载程序需要很多时间

是否有另一种方法可以使用需要较少计算机工作的控件数组绘制此图?还是应该完全停止使用阵列

(我想把我的照片贴在这里,但我还没有十个名声,因为我是个无名小卒:()

稍后我会在这个图中添加更多的行,但是因为我发现我的程序已经慢下来了,所以我停止了其他行的编程,去了全知论坛

任何帮助都将不胜感激

格里茨,
Arrie

常用的表单控件并不真正适合此用途。我建议您考虑使用库,让您能够更强大地控制视觉和图形。

@Kári是正确的:

如果您只想使用.NET(不依赖第三个库),您可以使用GDI.In.NET,您可以将System.Drawing.dll作为参考

一个简单但正确的方法是:

  • 创建目标控件(例如picturebox)
  • 实现OnPaintDraw事件,该事件为您提供图形对象 包含许多绘图方法的。有关详细信息,请参阅MSDN:
  • 图形方法将始终在控件上方绘制,因此请确保目标控件是可见的,而不是在任何其他控件后面。
    如果GDI不够,您可以查看其他库

    因为我在背景上使用了很多图片框,所以我不能使用graphics.DrawLine,因为它将在图片框后面绘制。这没有任何意义。你可以轻松地在图片框上绘制。实际上,你甚至不需要三个图片框,只需绘制3个圆角矩形即可!你真的需要在绘制控件事件中学习图形和绘图s、 不管它们是图片盒还是面板!!!!不要像你看起来那样在表格上画画!谢谢,我要试试这个!