場景 Winform中設置ZedGraph滑鼠懸浮顯示距離最近曲線上的點的坐標值和X軸與Y軸的標題: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103140781 上面博客能實現滑鼠懸浮顯示最近的曲線上點的坐標值與X軸和Y軸的 ...
場景
Winform中設置ZedGraph滑鼠懸浮顯示距離最近曲線上的點的坐標值和X軸與Y軸的標題:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103140781
上面博客能實現滑鼠懸浮顯示最近的曲線上點的坐標值與X軸和Y軸的標題,
如果想要再顯示其他信息,比如曲線所對應的文件名等。
那麼就要在生成曲線時將自定義要保存的信息與曲線進行綁定存儲。
註:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關註公眾號
霸道的程式猿
獲取編程相關電子書、教程推送與免費下載。
實現
ZedGraph的曲線對象是LineItem,其有一屬性Tag可以用它來存儲額外信息。
在生成曲線時
LineItem myCurve = myPane.AddCurve(yList[i].Title, list, System.Drawing.ColorTranslator.FromHtml(yList[i].Color), symbolType); //使用曲線TAG存儲資料庫名 文件名 //文件完整路徑 string filePath = compTestDataList[k].ThisDataFile; //文件名 string fileName = System.IO.Path.GetFileNameWithoutExtension(filePath); //資料庫名 string dBName = System.IO.Directory.GetParent(filePath).ToString(); dBName = dBName.Substring(dBName.LastIndexOf('\\') + 1); dBName = "DB_" + dBName; //短文件名 string[] titles = fileName.Split('_'); string shortFileName = "櫃" + titles[titles.Length - 2] + "通道" + titles[titles.Length - 1]; myCurve.Tag = dBName + shortFileName; myCurve.YAxisIndex = i;
生成曲線時使用曲線對象的Tag屬性存儲了自定義的一些信息。
那麼在滑鼠的懸浮事件中
tag = nearstCurve.Tag.ToString();
完整示例代碼
private static string zgc_CursorValueEvent(ZedGraphControl sender, GraphPane pane, Point mousePt) { ZedGraphControl zgc = sender as ZedGraphControl; if (zgc != null) { CurveItem nearstCurve; int i; Double x = 0.0; Double y = 0.0; string xTitle = String.Empty; string yTtile = String.Empty; string tag = String.Empty; string xVlaue = String.Empty; string z = String.Empty; try { zgc.GraphPane.FindNearestPoint(mousePt, out nearstCurve, out i); if (nearstCurve != null && nearstCurve.Points.Count > i && nearstCurve.Points[i] != null) { z = nearstCurve.Points[i].Tag.ToString(); y = nearstCurve.Points[i].Y; xTitle = zgc.GraphPane.XAxis.Title.Text; //獲取當前pane面板的YAxis的標題的文本內容,通過nearstCurve.YAxisIndex獲取當前距離最近的曲線所對應的Y軸的Index yTtile = zgc.GraphPane.YAxisList[nearstCurve.YAxisIndex].Title.Text; tag = nearstCurve.Tag.ToString(); } } catch (Exception ex) { } return tag+ " X-" + xTitle + ": " + z + " Y-" + yTtile + ": " + y.ToString(); } else { return String.Empty; } }
效果