社区
C#
帖子详情
关于重写OnPaint()的问题
sumaert
2005-12-02 10:42:08
我刚刚开始学习c#编程
写了一给简单的绘图程序
在窗体上绘图之后如果用别的应用程序界面覆盖绘图程序的界面
原本绘制的图形就会消失;
一般情况下可以重写OnPaint(),但怎样重写才能使我的绘图程序恢复到被覆盖前的手绘的图形
c#中有提供把窗体的界面保存为图形的方法吗?
求各位高手帮助。
谢谢先。
...全文
259
10
打赏
收藏
关于重写OnPaint()的问题
我刚刚开始学习c#编程 写了一给简单的绘图程序 在窗体上绘图之后如果用别的应用程序界面覆盖绘图程序的界面 原本绘制的图形就会消失; 一般情况下可以重写OnPaint(),但怎样重写才能使我的绘图程序恢复到被覆盖前的手绘的图形 c#中有提供把窗体的界面保存为图形的方法吗? 求各位高手帮助。 谢谢先。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tiaoci
2005-12-02
打赏
举报
回复
要保存绘制的图形,这要看你怎么处理手绘了
比方:你可以按线条保存图形,用户按下按钮时记录起点,
用户拖动,释放按钮后记录结束点,这样你就得到了一系列的线
在OnPaint时,一次把这些线再绘制一遍就OK了
当然你也可以按点保存图形,都是可以的
sumaert
2005-12-02
打赏
举报
回复
谢谢!!!
掐死温柔
2005-12-02
打赏
举报
回复
查MSDN去.
Macosx
2005-12-02
打赏
举报
回复
复杂的也没研究过 对于画线可以用一系列的数组保存 参考programming windows with C# 不过在实际中不一定适用
BearRui
2005-12-02
打赏
举报
回复
直接画在图片上就不会出现你那样的情况了
-------------
private void button1_Click(object sender, System.EventArgs e)
{
Bitmap m_localBitmap = new Bitmap(this.ClientRectangle.Width,this.ClientRectangle.Height);
this.BackgroundImage = m_localBitmap;
Graphics g = Graphics.FromImage(m_localBitmap);
g.Clear(BackColor);
Pen p=new Pen(Color.Black,5);
g.DrawLine(p,0,0,50,100);
p.Dispose();
}
sumaert
2005-12-02
打赏
举报
回复
谢谢
如果是直接在窗体上绘图
怎么保存
BearRui
2005-12-02
打赏
举报
回复
//保存Graphics在pictureBox背景图上画的图。
pictureBox1.Image=Image.FromFile(@"E:\1.bmp");
Graphics g=Graphics.FromImage(pictureBox1.Image);
Pen p=new Pen(Color.Black,5);
g.DrawLine(p,0,0,50,100);
pictureBox1.Refresh();
pictureBox1.Image.Save(@"E:\123.bmp");
sumaert
2005-12-02
打赏
举报
回复
谢谢,但是怎么保存手绘的图形
tiaoci
2005-12-02
打赏
举报
回复
手绘的图形要保存起来的
在OnPaint里面再绘制一下保存起来的手绘图形
sumaert
2005-12-02
打赏
举报
回复
小弟虚心求教高手
帮帮忙阿
C#中
paint
()与On
paint
()的区别
代码如下:protected virtual On
Paint
(
Paint
EventArgs e){ if(
paint
!= null){
paint
(this,e);}}如果直接
重写
on
paint
,
paint
就会失效;这样就不会失效: 代码如下:protected override On
Paint
(
Paint
EventArgs e){ base.On
Paint
(e); //自己的代码} (一)重绘时候经常会用到On
Paint
()和
Paint
,它们有什么区别呢? 1.On
Paint
方法是对一个控件来说的;而
Paint
事件是对一个控件对象来说的。它们中前者相当于是类的一个成员函数,而后者相当于
On
Paint
重绘窗体
重写
窗体重绘事件 protected override void On
Paint
(
Paint
EventArgs e) { e.Graphics.DrawImage((Image)pic,new Point(0,0));//重绘窗体 }
PictureBox闪烁解决
基于NET2.0编写的类库 在以下系统自带的控件中强化功能: 【Button】 开启自适应微软雅黑字体,如果可以将尝试使用微软雅黑字体而不是丑陋的宋体 【CheckBox】 开启自适应微软雅黑字体,如果可以将尝试使用微软雅黑字体而不是丑陋的宋体 新增鼠标单击、移入、移出颜色变化功能,在属性表中可以找到 【Label】 开启自适应微软雅黑字体,如果可以将尝试使用微软雅黑字体而不是丑陋的宋体 新增鼠标单击、移入、移出颜色变化功能,在属性表中可以找到 【Panel】 大幅减少控件移动、背景变换时的闪烁,
重写
On
Paint
开启双缓冲 【PictureBox】 大幅减少控件移动、背景变换时的闪烁,
重写
On
Paint
开启双缓冲 新增鼠标单击、移入、移出图片改变功能,在属性表中可以找到 【RadioButton】 开启自适应微软雅黑字体,如果可以将尝试使用微软雅黑字体而不是丑陋的宋体 新增鼠标单击、移入、移出颜色变化功能,在属性表中可以找到 以上控件所有方法、用法与系统控件一至,完全继承自系统控件。 使用方法:工具箱 右键 选择DLL即可
重绘进度条
本例程是通过
重写
On
Paint
()函数实现对进度条重绘的
Winform TextBox支持垂直居中自定义控件
继承系统的TextBox,支持文字垂直居中;自动折行(即WordWrap = True)也支持垂直居中。
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章