ZedGraph的曲線的LineItem對象的Tag屬性存儲信息進而在鼠標懸浮時進行顯示

場景

Winform中設置ZedGraph鼠標懸浮顯示距離最近曲線上的點的座標值和X軸與Y軸的標題:數據庫

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103140781編程

上面博客能實現鼠標懸浮顯示最近的曲線上點的座標值與X軸和Y軸的標題,spa

若是想要再顯示其餘信息,好比曲線所對應的文件名等。.net

那麼就要在生成曲線時將自定義要保存的信息與曲線進行綁定存儲。rest

注:code

博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公衆號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。 orm

實現

ZedGraph的曲線對象是LineItem,其有一屬性Tag能夠用它來存儲額外信息。對象

在生成曲線時blog

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;
            }
        }

效果

 

 

相關文章
相關標籤/搜索