C# 使用Windows窗体设计GUI时遇到问题

C# 使用Windows窗体设计GUI时遇到问题,c#,winforms,user-interface,drawing,system.drawing,C#,Winforms,User Interface,Drawing,System.drawing,我正在尝试编写一个简单的GUI,它使用图形的对象原语呈现大量图像。我想要的是一系列区域,我可以独立于其他区域进行绘制,这样每个绘制“画布”在顶级表单的全局坐标框架内都有自己的原点 到目前为止,我已经尝试将几个面板添加到FlowLayoutPanel。然而,由于只调用了一个onPaint方法,所以它们似乎被置于另一个之上。我可以覆盖表单的onPaint以使其他面板无效,这些面板随后会被绘制,但不会显示 除了设置大小和初始化FlowLayoutPanel之外,我还缺少什么吗?有更好的方法吗 代码:您

我正在尝试编写一个简单的GUI,它使用图形的对象原语呈现大量图像。我想要的是一系列区域,我可以独立于其他区域进行绘制,这样每个绘制“画布”在顶级表单的全局坐标框架内都有自己的原点

到目前为止,我已经尝试将几个面板添加到FlowLayoutPanel。然而,由于只调用了一个onPaint方法,所以它们似乎被置于另一个之上。我可以覆盖表单的onPaint以使其他面板无效,这些面板随后会被绘制,但不会显示

除了设置大小和初始化FlowLayoutPanel之外,我还缺少什么吗?有更好的方法吗


代码:

您没有设置FlowLayoutPanel的大小。它将默认为200 x 100,边距为3。用100 x 100的控件填充它。给定裕度,这些控件中只有一个可以同时可见。因此,只有一个绘制事件并不奇怪,Windows只要求可见控件自己绘制


不太清楚目的是什么,从扩大FLP开始。并将其AutoScroll属性设置为true,以便用户可以将其他控件滚动到视图中。顺便说一句,使用设计器是一种快速找到答案的方法。

根据您的类名称,看起来您正在设计一款游戏。。。也许你想看看微软的XNA框架

但是,您提供的代码的问题是,您的layoutPanel大小不正确,因此其子控件在主窗体上不可见。。。因为绘画只对可见的物品进行。。。你的大部分地板都没有油漆


尝试更改布局面板的大小或将其停靠模式设置为“填充”

谢谢。我添加了AutoScroll,但使用了DarkSquirrel的dock模式来设置大小。使用设计器不是一个选项;我正在使用Linux上的monodevelop开发它。不是编写游戏,而是一个新的机器学习算法的可视化,用于分散式再聚焦学习。谢谢你的帮助。