C# 使用图形在面板内的面板上绘图。第一个面板比第二个大
Posted
技术标签:
【中文标题】C# 使用图形在面板内的面板上绘图。第一个面板比第二个大【英文标题】:C# Drawing on a panel inside a panel using Graphics. The first panel is bigger than the second 【发布时间】:2011-10-17 13:26:23 【问题描述】:我有两个面板:一个始终可见,另一个稍后声明并属于第一个面板: "panel1.Controls.Add(this.Panel2);"
整个程序总是有 2 个文本框、7 个用作按钮的图片框、3 个标签和 1 个面板(它们在程序开始运行时立即声明)。
声明第二个面板后,将激活绘图功能。该函数在第二个面板上绘制。
如果 Panel2 比 Panel1 高或宽(或两者兼有)(Panel2 变为部分可见),第一次调用绘图函数时,绘图函数完成后第二个面板变为空白。我必须重新调整窗口的大小,或者重新调整我的绘图(绘图函数在很多情况下都会被调用)。如果 Panel2 在各方面都小于 Panel1,则问题不会发生。
Panel2 被操作的顺序如下: 宣布小组2; 调整 Panel2 的属性; 将 Panel2 添加到 Panel1; 在 Panel2 上绘图; 其他 Panel2 相关的东西。
起初我在 Panel1 中使用按钮和 PictureBox。仅当按钮未使用其默认外观(无论 PictureBox 的大小)时,才会出现此问题。后来我用 Panel 改变了 PictureBox,用 PictureBoxes 改变了按钮(我想制作自定义按钮)。在那次改变之后,我又遇到了这个问题。
代码很大,我不确定是否有必要。我肯定对代码的算法有问题。
【问题讨论】:
【参考方案1】:你画错了。
您需要在 Paint
处理程序中进行绘制,以便在重新绘制控件时重新绘制您的内容。
你永远不应该画到control.CreateGraphics()
。
【讨论】:
谢谢!谢谢!谢谢!谢谢!这解决了问题。我希望我不会遇到任何其他油漆问题。以上是关于C# 使用图形在面板内的面板上绘图。第一个面板比第二个大的主要内容,如果未能解决你的问题,请参考以下文章