場景 Winforn中設置ZedGraph曲線圖的屬性、坐標軸屬性、刻度屬性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100112573 在滑鼠經過曲線附近時獲取最近曲線以及曲線上點的坐標,並以此坐標表示一條十字線。 效果 ...
場景
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); } }
這裡採取的方法是採用將線畫到原點的方式使其消失。