想象一个简单的 .Net 2.0 Windows-Form,它带有一个填充整个表单的 MultilineTextbox。每次按下键时,我都想(重新)绘制一个矩形。在实际应用程序中,关于矩形的位置和内容有更多的逻辑——但要保持简单。
我想:“让我们先使 TextBox 无效,然后再绘制矩形。” 但这不起作用。屏幕短暂闪烁——就是这样。如果我删除“无效”线,则会绘制一个矩形 - 但旧的保持它们的位置..
怎么了?我如何从头开始重新粉刷?
预先感谢您的回答!
private void OnKeyDown(object sender, KeyEventArgs e)
{
textBox1.Invalidate();
using (Graphics g = this.textBox1.CreateGraphics())
{
int startX = 100;
int startY = 300;
int height = 200;
Brush brush = new SolidBrush(Color.FromArgb(60, 255, 0, 0));
Pen myPen = new Pen(Color.Black, 2);
myPen.DashStyle = DashStyle.Dash;
g.DrawRectangle(myPen, startX, startY, this.textBox1.Width, height);
g.FillRectangle(brush, startX, startY, this.textBox1.Width, height);
}
}