我有两个面板:一个始终可见,另一个稍后声明并属于第一个面板: “panel1.Controls.Add(this.Panel2);”
整个程序总是有2个TextBox,7个用作按钮的PictureBox,3个标签和1个面板(一旦程序开始运行就会声明它们。)
声明第二个面板后,绘图功能激活。该功能在第二个面板上绘制。
如果Panel2比Panel1更高或更宽(或两者)(Panel2变得部分可见),第一次调用绘图功能时,第二个面板在绘图功能完成后变为空白。我必须重新调整窗口的大小,或者为了让我的绘图恢复(在许多情况下调用绘图函数)。如果Panel2在各方面都小于Panel1,则问题不会发生。
正在按以下顺序操作Panel2: 宣布Panel2; 调整Panel2的属性; 将Panel2添加到Panel1; 在Panel2上绘图; 其他Panel2相关的东西。
起初我在Panel1中使用了按钮和PictureBox。以前只有当按钮没有使用默认外观时才会出现问题(无论PictureBox的大小如何)。后来我改变了带有Panel的PictureBox和带有PictureBoxes的按钮(我想制作自定义按钮)。在那次改变后,我再次遇到了问题。
代码很大,我不确定是否有必要。我肯定对代码算法有问题。
答案 0 :(得分:2)
你错了。
您需要在Paint
处理程序内部绘制,以便在重新绘制控件时重新绘制内容。
你永远不应该画到control.CreateGraphics()
。