读书人

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

发布时间: 2013-08-04 18:26:15 作者: rapoo

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;
}
}


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

读书人网 >VB Dotnet

热点推荐