很难用文字来解释我的问题,所以我会尝试用文字和图像:)
我的 win 表单应用程序(ms visual studio 项目)中有上下文菜单控件。它并没有完全消失,它的一部分停留在我的面板控件上,它是自定义面板类(具有边框颜色属性)。该问题仅出现在 Windows XP 上,而不出现在 Windows 7 上。
2.源代码:
public class MyPanel : Panel
{
private System.Drawing.Color colorBorder = System.Drawing.Color.Transparent;
public MyPanel()
: base()
{
this.SetStyle(ControlStyles.UserPaint, true);
this.BorderStyle = BorderStyle.None;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawRectangle(new System.Drawing.Pen(
new System.Drawing.SolidBrush(colorBorder), 2), e.ClipRectangle);
}
protected override void OnResize(EventArgs e)
{
Invalidate();
}
public System.Drawing.Color BorderColor
{
get
{
return colorBorder;
}
set
{
colorBorder = value;
}
}
}
如何解决这个问题?当上下文菜单关闭事件发生时,我可以为面板添加 Invalidate() (以重绘它),但我想知道为什么会发生这个问题,是一些 .NET Framework 错误吗?