首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net 或C#在picturebox上画图有关问题

2013-08-04 
vb.net 或C#在picturebox上画图问题大家好,谁解决过类似问题,麻烦说个思路即可在现有的一张picturebox上,

vb.net 或C#在picturebox上画图问题
大家好,谁解决过类似问题,麻烦说个思路即可

在现有的一张picturebox上,注意,这个picturebox上已经有内容了,无论是图片也好,bitmap也好,总之要保持不变

然后当鼠标move到picturbox里时,保持picturebox上的图片不变,根据鼠标在picturebox中的相对坐标,在上面出现一个十字线,就类似在股票软件上鼠标移动到K线图上那样

鼠标leave的时候,十字线消失

整个过程picturebox内容不变

我有一个方法能解决,但是跑起来非常卡,就是用两个函数,move事件调用A函数,画图+画线. leave事件调用B函数,只在picturebox上画图.这两个函数的差别就是查个画线函数.

我不在paint事件中写代码的,因为太消耗资源,我这个图生成本身就比较消耗资源了.鼠标在上面的时候其实就是一直在调用A函数,已经反复的画图+画线,非常消耗资源,线走起来也比较卡.

所以想请教大家有什么好方的方法实现这个功能呢,说个可以实现的思路即可!谢谢!
[解决办法]
底图可以在内存中绘制一个bitmap作为底图,画十字叉,也可以一起绘制到底图,或者用亦或绘图,c#提供一个函数,那样绘制比较快
[解决办法]
换一种思路,别再PicBox上面画,直接改变指针的光标就行了

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.MouseHover += new EventHandler(Form1_MouseHover);
            this.MouseLeave += new EventHandler(Form1_MouseLeave);
        }

        void Form1_MouseLeave(object sender, EventArgs e)
        {
            this.Cursor = Cursors.Default;
        }

        void Form1_MouseHover(object sender, EventArgs e)
        {
            this.Cursor = Cursors.Cross;
        }
    }


类似上面那样,显示的光标也可以自己个性化,自己画

热点排行