場景
Winforn中設定ZedGraph曲線圖的屬性、坐標軸屬性、刻度屬性:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100112573
在滑鼠經過曲線附近時獲取最近曲線以及曲線上點的坐標,并以此坐標表示一條十字線,
效果

注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程式猿
獲取編程相關電子書、教程推送與免費下載,
實作
系結滑鼠移動事件
zgc.MouseMove += zgc_MouseMove;
其中zgc是 ZedGraphControl zgc
private static void zgc_MouseMove(object sender, MouseEventArgs e) { using (Graphics gc = Global.zedGraphControl1.CreateGraphics()) using (Pen pen = new Pen(Color.Green)) { //設定畫筆的寬度 pen.Width = 1; pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot; RectangleF rect = Global.zedGraphControl1.GraphPane.Chart.Rect; //確保在畫圖區域 if (rect.Contains(e.Location)) { Global.zedGraphControl1.Refresh(); //畫豎線 gc.DrawLine(pen, e.X, rect.Top, e.X, rect.Bottom); //畫橫線 gc.DrawLine(pen, rect.Left, e.Y, rect.Right, e.Y); } } }
注:
Global.zedGraphControl1是全域域的zedGraphControl物件,
這樣后會隨著滑鼠的移動產生十字線,但是在離開pane時怎樣將畫好的十字線洗掉掉,
系結其滑鼠移除事件
zgc.MouseLeave += zgc_MouseLeave;
實作方法
private static void zgc_MouseLeave(object sender, EventArgs e) { using (Graphics gc = Global.zedGraphControl1.CreateGraphics()) using (Pen pen = new Pen(Color.Green)) { //設定畫筆的寬度 pen.Width = 1; pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot; RectangleF rect = Global.zedGraphControl1.GraphPane.Chart.Rect; //確保在畫圖區域 Global.zedGraphControl1.Refresh(); //畫豎線 gc.DrawLine(pen, 0, 0, 0, 0); //畫橫線 gc.DrawLine(pen, 0, 0, 0, 0); } }
這里采取的方法是采用將線畫到原點的方式使其消失,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/4903.html
標籤:WinForm
上一篇:C#中的一些對話框問題處理
