在背景图片上动态添加一个ico图标,要求不刷新背景图 GDI+画图吧..以窗体背景为画板,可以任意指定坐标画图..然后重写一下on_print方法.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 gid绘图,或者你再放置一个picturebox,用来显示icon 可以使用Invalidate(Rectangle)来做局部刷新。1、要求pbxMap在画完底图后,叠加图标2、如果键盘上下左右,则移动图标位置3、用Invalidate来局部刷新,‘局部’为图标新旧位置的超集(旧位置也要更新以便擦除)。public Form1(){ InitializeComponent(); this.pbxMap.Paint += pbxMap_Paint; // 1 this.KeyDown += Form1_KeyDown; }void Form1_KeyDown(object sender, KeyEventArgs e){ int deltaX = 0, deltaY = 0, step = 5; switch(e.KeyCode) { case Keys.Left: deltaX -= step; break; case Keys.Right: deltaX += step; break; case Keys.Up: deltaY -= step; break; case Keys.Down: deltaY += step; break; } if (deltaX != 0 || deltaY != 0) { Rectangle oldRect = iconRect; iconRect.Offset(deltaX, deltaY); // 2 this.pbxMap.Invalidate(Rectangle.Union(oldRect, iconRect)); // 3 局部刷新 }}Rectangle iconRect = new Rectangle(new Point(100, 100), SystemIcons.Question.Size);void pbxMap_Paint(object sender, PaintEventArgs e){ e.Graphics.DrawIconUnstretched(SystemIcons.Question, iconRect);} 1.这根本不是什么ICO图标,你可以是bmp格式,jpg格式都行,就是不能用ICO格式2.GDI+画上去也可,动态添加多个picturebox也可 对于新手来说GDI+是个神马东西啊很难的样子,我告诉你其实你就掌握一个类的一个方法就够你用了,比你想象的简单的多 GDI+光听名字好高大上的样子,你随便搜一下,改一改就行了其实就是代码画线,画文字,中学计算机课学QBASIC应该都学过的,大学学的C语言也都学过的 datagridview无法自动添加行 DevExpress.XtraGrid中,如何用两个XtraGrid实现表间关联? 请教groupbox的动态操作代码 一个奇怪的问题......在线等...顶贴有分 请教一些简单的问题 DATAGRIDVIEW记录保存 关于这个打印类,该传什么参数才对?(怎么传stream流给它?二进制流??文本流和图象流?? C#中怎么检测到数据库中是否有新的数据. 急!急!一个很常见的知识 如何打印DataGrid中的内容啊? (高手请帮帮我)RDLC报表页眉只在第一页上显示的问题 Remoting什麼是服務器激活什麼是客戶端激活
1、要求pbxMap在画完底图后,叠加图标
2、如果键盘上下左右,则移动图标位置
3、用Invalidate来局部刷新,‘局部’为图标新旧位置的超集(旧位置也要更新以便擦除)。
public Form1()
{
InitializeComponent();
this.pbxMap.Paint += pbxMap_Paint; // 1
this.KeyDown += Form1_KeyDown;
}void Form1_KeyDown(object sender, KeyEventArgs e)
{
int deltaX = 0, deltaY = 0, step = 5;
switch(e.KeyCode)
{
case Keys.Left: deltaX -= step; break;
case Keys.Right: deltaX += step; break;
case Keys.Up: deltaY -= step; break;
case Keys.Down: deltaY += step; break;
}
if (deltaX != 0 || deltaY != 0)
{
Rectangle oldRect = iconRect;
iconRect.Offset(deltaX, deltaY); // 2
this.pbxMap.Invalidate(Rectangle.Union(oldRect, iconRect)); // 3 局部刷新
}
}Rectangle iconRect = new Rectangle(new Point(100, 100), SystemIcons.Question.Size);
void pbxMap_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawIconUnstretched(SystemIcons.Question, iconRect);
}
2.GDI+画上去也可,动态添加多个picturebox也可
其实就是代码画线,画文字,中学计算机课学QBASIC应该都学过的,大学学的C语言也都学过的