| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5697 人关注过本帖
标题:C# 刷新picturebox
只看楼主 加入收藏
nash19890922
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2011-7-10
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
C# 刷新picturebox
我在picturebox上通过鼠标拖拉画出了图像,在此以鼠标画直线为例,但是直线并不能适时的显示出来,但是如果将窗口最小化,然后打开,这样直线才能显示出来,所以我想是不是需要刷新的问题,如果不是的话,请高手指点,注:指点希望详细点,我是菜鸟
搜索更多相关主题的帖子: 鼠标 
2011-10-30 21:45
clhc
Rank: 6Rank: 6
等 级:侠之大者
帖 子:69
专家分:441
注 册:2011-10-11
收藏
得分:0 
            PictureBox pb = new PictureBox();
            pb.Invalidate();
这是手动刷新的代码 如果是想自动刷新的话 就把绘制的代码写在 pb的paint事件里
2011-10-30 22:16
nash19890922
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2011-7-10
收藏
得分:0 
回复 2楼 clhc
不好意思 我试了一下,没有用,还有的是我已经在里面画了直线 ,我刷新的目的是让他直接出来,而不是最小化,然后再打开出现,并不是新建一个picturebox
2011-10-31 10:09
clhc
Rank: 6Rank: 6
等 级:侠之大者
帖 子:69
专家分:441
注 册:2011-10-11
收藏
得分:0 
回复 3楼 nash19890922
是我没有说清楚 你窗体移动 改变大小时 都会触发控件重绘 所以你应该把你绘制的代码放在 paint事件里 或者在paint事件里调用你绘制的方法
2011-10-31 10:39
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
收藏
得分:0 
两种办法,具体要看你到底要干什么用
1. 画线之后把线连同原来显示的图一起保存,然后把PictureBox的IMAGE改成你保存后的IMAGE
2. 记录画线的这个动作,在PictureBox的Paint事件里面运行,也就是每次重绘都再画一条线
2011-10-31 10:42
nash19890922
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2011-7-10
收藏
得分:0 
回复 5楼 qubo1982
您能留个联系方式吗 ,我可能表述的不是很清楚 QQ号也行
2011-10-31 11:46
nash19890922
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2011-7-10
收藏
得分:0 
回复 5楼 qubo1982
在Paint画线的例子你有吗 可以给我参考吗
2011-10-31 21:16
qubo1982
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:367
专家分:1132
注 册:2009-3-18
收藏
得分:20 
程序代码:
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            Pen p = new Pen(Color.Crimson);
           
            using (Graphics g = pictureBox1.CreateGraphics())
            {
                pictureBox1.Refresh();//刷新图像显示,作用是清除上次画的内容
                g.DrawLine(p, new Point(e.X, 0), new Point(e.X, pictureBox1.Height));
                g.DrawLine(p, new Point(0, e.Y), new Point(pictureBox1.Width, e.Y));
                g.DrawString(string.Format("{0}, {1}", e.X, e.Y),
                    new Font("", 10), new SolidBrush(Color.Red), new Point(e.X + 10, e.Y - 10));
            }
        }
随鼠标移动,在PictureBox中画两根交差的线和坐标
2011-11-01 09:13
nash19890922
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2011-7-10
收藏
得分:0 
回复 8楼 qubo1982
非常谢谢您
2011-11-05 04:30
快速回复:C# 刷新picturebox
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043957 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved