C# GDI绘制,我只想重绘某一部分如和实现?
我需要绘制一些文字及计算结果,显示在一个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);
}
运行结果:
我如何只重绘最后一个结果?或者选择中间某个结果重绘?关键是结果多的时候,有可能把一些其他显示内容覆盖,重绘后其他的内容不能丢掉,如何实现? 全部重绘当然也能实现,但是多的时候还有点小慢。
找到这个字符串的坐标,然后重绘制,但是如果覆盖其他的内容,有重叠的情况下,如何搞?
...全文
相关推荐
winform gdi+重绘窗体 控件
Winform窗体重绘,button控件重绘,listbox控件重绘,checkbox重绘等控件。原创资源 编写于2009-2010
C# GDI绘图—简单画板的实现
最近在学习这个,发现网络上C#很多相关的问答讲解上都不完整,耗费了时间还解决不了自己的问题。所以打算将自己学习过程中的一些东西上传来,分享给初学者们,大家一起勉励吧!(因为是面向初学者的交流,会写的啰嗦点,请见谅) 这里要用到的是Graphics类,所以各位在学习的时候要想看看这个相关的基础知识。 先讲解下大家会遇到的问题吧。 1. 画好后的图像在最小化之后玩玩会消失不
C#的GDI+绘制曲线图
写了很长时间的一个控件,可以选择同时绘制两条曲线,代码都加上了注释,希望可以帮到需要的同学,不懂的地方可以私信我
C# 使用GDI+绘制漂亮的ToolTip控件
介绍C#使用GDI+重绘工具提示控件ToolTip,实现ToolTip自定义图标、大图标、小图标和透明显示,并可以轻松的更换ToolTip背景和边框颜色
C# GDI+实现网格绘制,并显示内容
C# GDI+实现的网格绘制功能,同时,项目包含了GDI+的基本功能介绍和使用项目,工程使用vs2012编写,已通过编译。


