在c#中使用Paint事件的问题

时间:2009-09-17 08:38:08

标签: c#

之前我使用过以下代码并且工作正常。当我使用相同的 在我的一个窗口形式中,表单的颜色没有变化。

我的意思是在页面加载后显示表单的默认颜色。但是当我尝试调试下面的代码时,它会完美地改变表单的颜色。问题是,在执行代码的最后一行后,表单的颜色会恢复为默认颜色。

我错过了什么吗?

表单看起来像一个Windows任务栏,里面有一个制表符控件。

private void TaskBar_Paint(object sender, PaintEventArgs e)
{
    Graphics mGraphics = e.Graphics;
    Pen pen1 = new Pen(Color.FromArgb(96, 155, 173), 1);

    Rectangle Area1 = new Rectangle(0, 0, this.Width - 2, this.Height - 2);
    LinearGradientBrush LGB = new LinearGradientBrush(Area1,
        Color.FromArgb(96, 155, 173),
        Color.FromArgb(245, 251, 251),
        LinearGradientMode.Vertical);
    mGraphics.FillRectangle(LGB, Area1);
    mGraphics.DrawRectangle(pen1, Area1);
}

1 个答案:

答案 0 :(得分:1)

这里没什么可做的。这个处理程序附加了什么? Form的Paint事件?如果是这样,您应该重写OnPaint()而不是附加到处理程序。我的猜测是,其他一些方法也在做一些绘画。你需要跟踪它。没有更多代码,这里的任何人都不太可能帮助你。遗憾。