使用图形在面板内的面板上绘图.第一块面板比第二块大

本文关键字:一块 二块 绘图 图形 | 更新日期: 2023-09-27 18:04:14

我有两个面板:一个总是可见的,另一个稍后声明,属于第一个面板:"panel1.Controls.Add (this.Panel2);"

整个程序总是有2个TextBoxes, 7个PictureBoxes用作按钮,3个标签和1个面板(它们在程序开始运行时声明)。

在第二个面板被声明后,一个绘图函数被激活。函数绘制第二个面板

如果Panel2比Panel1高或宽(或两者都有)(Panel2变得部分可见),当绘图函数第一次被调用时,第二个面板在绘图函数完成后变为空白。我必须重新调整窗口的大小,或者为了让我的绘图回来(绘图函数在许多情况下被调用)。如果Panel2在各方面都比Panel1小,问题就不会发生。

Panel2被操纵的顺序如下:宣布Panel2;调整Panel2的属性;添加Panel2到Panel1;绘图面板2;其他与Panel2相关的内容

起初我在Panel1内部使用按钮和PictureBox。过去,只有当按钮没有使用默认外观时(无论PictureBox的大小如何),才会出现这个问题。后来我用Panel改变了PictureBox,用PictureBoxes改变了按钮(我想做自定义按钮)。在那次改变之后,我再次面对这个问题。

代码太大了,我不确定是否有必要。我肯定对代码的算法有问题。

使用图形在面板内的面板上绘图.第一块面板比第二块大

你画错了

您需要在Paint处理程序中绘制,以便在控件重新绘制时重新绘制您的内容。
你不应该画到control.CreateGraphics()