刚开始学习C#,一个问题困扰我一周了,求高手给个思路。
我做了个K线图程序,屏幕上有个十字线随着鼠标移动。
作K线分析时,使用者需要在上面画线,如直线、矩形、平行线等。我现在不知道怎么来处理画线。我把K线画在一个Panel上,上面一个pictureBox画随鼠标移动的十字线。我本来想再放一个pictureBox来给运行期间画线,但发现两个pictureBox重叠时,BackColor=Transparent不起作用。于是我编写画线的控件,水平线和垂直线倒好,斜线就不行了,也是把后面遮住了。实在想不出办法,求高手给个思路。不胜感激。
我做了个K线图程序,屏幕上有个十字线随着鼠标移动。
作K线分析时,使用者需要在上面画线,如直线、矩形、平行线等。我现在不知道怎么来处理画线。我把K线画在一个Panel上,上面一个pictureBox画随鼠标移动的十字线。我本来想再放一个pictureBox来给运行期间画线,但发现两个pictureBox重叠时,BackColor=Transparent不起作用。于是我编写画线的控件,水平线和垂直线倒好,斜线就不行了,也是把后面遮住了。实在想不出办法,求高手给个思路。不胜感激。
解决方案 »
- 求助求助求助求助......
- 录制播放中声音的问题。急!
- 我用C#做了个登录界面,怎样把它和sql数据库连接起来?
- [求助]如何用c#读取pdf内容?
- 奇怪,怎么不响应事件呢?DropDownList
- C/S小问题:是让客户端直接连SQL还是让服务器端从SQL得到数据到传给客户端?
- 这个正则表达式怎么写?
- 新手求教 dynamic 转换为确定类型
- GetHostByAddress(www.163.com)就失败,GetHostByAddress(127.0.0.1)就成功,为什么?
- 开发查询程序时能不能使用DataView来过滤或排序?
- ie中如何向C#编写的activex控件传递参数
- C#调用ocx控件出错
如果是这样你在Paint事件里设置一些标志就可以了啊,原来的K线总是在画,剩下的两种线各做一个开关,打开时候画,关闭不画不就好了
对画斜线之类的重绘较大面积的操作,你可以有选择的减少重绘次数,比如满足距离上次重绘鼠标移动多少距离之类的条件才重绘
如果还不能满足需求,那你可以在你的K线Panel上覆盖一个等大的PictureBox,图片就设置为你开始画其他线的时候Panel的图形拷贝,在PB上画线,画完后隐藏,把图形数据放到Panel上去
感觉C#绘图比Delphi复杂。也许是我刚接触C#的原因。我还要好好学习,再和classbob、new_smile探讨