关于Winform中类似股票K线图十字交叉线随着鼠标移动的实现方法!

      有一个项目组这段时间主要多为MFC及Winform类型的项目,主要从技术面而言而已,否则这个项目组的成本也忒高了,......还是记录一段时间的桌面应用知识吧!

      今天主要分享一下一个实习生解决一套大型系统中的一个功能模块之分析模块的类似股票十字交叉线的实现方法,哈哈,我的心态也是实习心态哦!-_-!

      我们知道在winform中,无论其VB、C#、J#等,还是其它技术或语言的实现,目前托管实现高级绘画功能时的性能还是非常有限的,但从项目开发角度,先原型后继续嘛!由此功能原型是非常重要的,优化功能或是否继续再待考虑了!.....今天备注的实现类似K线图十字线随鼠标移动的办法!

      问题情形是:

       1,在分析系统中,鼠标坐标记录了实时分析的数据。

       2,当鼠标移动时实时分析。

       其它略说,效果如图的白色十字线:关于Winform中类似股票K线图十字交叉线随着鼠标移动的实现方法!_第1张图片

       其实,实现时很多同事都从很多角度进行了提出,但最后均从功能后优化的策略,由此分享其中之一!(其实这种办法在几年前论坛种已经有提出,所以在这里只是案例整理罢了,高手略过了-_-!)。

       第一步:Winform中无专门“线”的控件,但面向对象里,winform一切均是对象,复用中,操作的多为控件,由此,撇开手动绘画不考虑,首先考虑:“那种控件是轻量的,可移动的,可变成一条线的?”,由此,非常轻量的控件就为Label文字控件了。

       第二步:选择好控件后,剩下的在窗体(Form)中的鼠标移动事件实现就可以了!实现步骤为:

                      1,在窗体中,拖拉两个Label控件到Form中,命名为:lb_横线、lb_竖线。并设置其背景色为白色!这个创建还是非常重要的,整个程序只创建一次哦!

                      2,在窗体初始化事件或Load事件中,设置lb_横线及lb_竖线的默认坐标为(0,0)及清空控件的内容:lb_横线.Text="";lb_竖线.Text=""。

                      3,  在鼠标移动事件中修改控件的位置就可以

                          private void TestForm_MouseMove(object sender, MouseEventArgs e)
                          {

                          //横线

                           lb_横线.Height=1;

                           lb_横线.Width=this.Width;

                          lb_横线.Location = new Point(0, e.Y);

                          //竖线

                          lb_竖线.Height=this.Height;

                          lb_竖线.Width=1;

                          lb_竖线.Location = new Point(e.X, 0);


                          //其它数据逻辑:这个逻辑一般都是直接呈现逻辑的好,最好少添加其它复杂的计算逻辑!

                          } 

          总结一下,软件中和我的电子项目、网络项目也类似吧,先功能后优化,举一反三!.....如除了使用Label控件是否可以使用Panel控件或其它控件?出现卡顿现象这样解决?等等!

     好了,今天就分享及简单分析这个了!说错了,望高手指教,谢谢!.

     

你可能感兴趣的:(.NET,Framework,C#)