0

我使用 this.Invalidate(); 清楚但一切都清楚。我只需要清楚我之前画的。

            private void AfyTextBox_Paint(object sender, PaintEventArgs e)
        {

            if (afytransparentTextBox.BackColor.A != 255 || afytransparentTextBox.BackColor.B != 255 || afytransparentTextBox.BackColor.G != 255 || afytransparentTextBox.BackColor.R != 255)
            {
                path = RoundedRectangle.Create(1, 1, this.Width - 7, this.Height - 7, 2); // Draw around
                e.Graphics.DrawPath(new Pen(afytransparentTextBox.BackColor), path);
            }
            else
            {
                //Here I need to clean that I drew earlier.( Draw around)
            }
}
4

2 回答 2

0

你可以试试这个方法

Graphics.Clear();

于 2013-09-25T10:19:01.300 回答
0

您不能从表面“撤消”。您必须清除并重新绘制您想要显示的内容。通常,告诉组件使用该Invalidate方法重新绘制自己就足够了。你可以有一个布尔标志来控制你的临时覆盖框是否被绘制。

于 2013-09-25T10:28:25.833 回答