C# GDI绘制,我只想重绘某一部分如和实现?

shadan05 shadan05 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我需要绘制一些文字及计算结果,显示在一个panel上,显示的结果比较多,所以就想如何只绘制某一部分?

例如下面这样:

private void Form2_Paint(object sender, PaintEventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("D1= 12mm");
sb.Append(" ");
sb.Append("D2= 23mm");
sb.Append(" ");
sb.Append("D2= 32mm");
sb.Append(" \n");
sb.Append("V1= 33\xb3");

Rectangle displayRectangle =
new Rectangle(new Point(20, 20), new Size(500, 500));

// Construct 2 new StringFormat objects
StringFormat format1 = new StringFormat(StringFormatFlags.NoClip);
StringFormat format2 = new StringFormat(format1);

// Set the LineAlignment and Alignment properties for
// both StringFormat objects to different values.
format1.LineAlignment = StringAlignment.Center;
format1.Alignment = StringAlignment.Center;

// Draw the bounding rectangle and a string for each
// StringFormat object.
e.Graphics.DrawRectangle(Pens.Black, displayRectangle);
e.Graphics.DrawString(sb.ToString(), this.Font,
Brushes.Red, (RectangleF)displayRectangle, format1);
}

运行结果:


我如何只重绘最后一个结果?或者选择中间某个结果重绘?关键是结果多的时候,有可能把一些其他显示内容覆盖,重绘后其他的内容不能丢掉,如何实现? 全部重绘当然也能实现,但是多的时候还有点小慢。

找到这个字符串的坐标,然后重绘制,但是如果覆盖其他的内容,有重叠的情况下,如何搞?
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
shadan05
C# 111,129 成员 642,538 内容