C#實(shí)現(xiàn)圖表中鼠標(biāo)移動(dòng)并顯示數(shù)據(jù)
本文實(shí)例為大家分享了C#實(shí)現(xiàn)圖表中鼠標(biāo)移動(dòng)并顯示數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
效果圖:
1.首先在頁(yè)面上添加一個(gè)label控件并 默認(rèn)隱藏:
2.給該圖表添加MouseMove鼠標(biāo)移動(dòng)事件:
/// <summary> /// 鼠標(biāo)經(jīng)過(guò)時(shí)發(fā)生 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void chart1_MouseMove(object sender, MouseEventArgs e)? { ? ?try ? ?{ ? ? ? ?HitTestResult Result = new HitTestResult(); ? ? ? ?Result = chart1.HitTest(e.X, e.Y); ? ? ? ?if (Result.Series != null && Result.Object != null) ? ? ? ?{ ? ? ? ? ? ?// 獲取當(dāng)前焦點(diǎn)x軸的值 ? ? ? ? ? ?string xValue = ObjectUtil.GetPropertyValue(Result.Object, "AxisLabel").ToString(); ? ? ? ? ? ?// 獲取當(dāng)前焦點(diǎn)所屬區(qū)域名稱(chēng) ? ? ? ? ? ?string areaName = ObjectUtil.GetPropertyValue(Result.Object, "LegendText").ToString(); ? ? ? ? ? ?// 獲取當(dāng)前焦點(diǎn)y軸的值 ? ? ? ? ? ?double yValue = Result.Series.Points[Result.PointIndex].YValues[0]; ? ? ? ? ? ?// 鼠標(biāo)經(jīng)過(guò)時(shí)label顯示 ? ? ? ? ? ?skinLabel4.Visible = true; ? ? ? ? ? ?skinLabel4.Text = "時(shí)間:"+ xValue + "\n"+ areaName + ":"+ yValue + "ug/m^3"; ? ? ? ? ? ?skinLabel4.Location = new Point(e.X, e.Y - 20); ? ? ? ?} ? ? ? ?else ? ? ? ?{ ? ? ? ? ? ?// 鼠標(biāo)離開(kāi)時(shí)label隱藏 ? ? ? ? ? ?skinLabel4.Visible = false; ? ? ? ?} ? ?} ? ?catch (Exception se) ? ?{ ? ? ? ?// 鼠標(biāo)離開(kāi)時(shí)label隱藏 ? ? ? ?skinLabel4.Visible = false; ? ?} }
3.其中GetPropertyValue() 獲取對(duì)象中的某個(gè)屬性 方法如下:
public class ObjectUtil { ? ?/// <summary> ? ?/// 獲取某個(gè)對(duì)象中的屬性值 ? ?/// </summary> ? ?/// <param name="info"></param> ? ?/// <param name="field"></param> ? ?/// <returns></returns> ? ?public static object GetPropertyValue(object info, string field) ? ?{ ? ? ? ?if (info == null) return null; ? ? ? ?Type t = info.GetType(); ? ? ? ?IEnumerable<System.Reflection.PropertyInfo> property = from pi in t.GetProperties() where pi.Name.ToLower() == field.ToLower() select pi; ? ? ? ?return property.First().GetValue(info, null); ? ?} }
另外(以下與上述無(wú)關(guān))圖表添加數(shù)據(jù)后綁定提示:
/// <summary> /// 揚(yáng)塵監(jiān)測(cè)、噪音監(jiān)測(cè)、溫度檢測(cè)、濕度監(jiān)測(cè) /// </summary> /// <param name="_Chart"></param> private void ChartTemperatureMethod(Chart _Chart) { ? ? List<string> xData = new List<string>() {"0", "4:00", "8:00", "12:00", "16:00", "20:00", "24:00" }; ? ? List<int> yData = new List<int>() { 0,21, 35, 48, 40, 27, 7 }; ? ? List<int> yData1 = new List<int>() { 0,5, 18, 25, 68, 50, 30 }; ? ? string iss = "#VALX"; ? ? // 需要提示的信息 ? ? chart1.Series["Series1"].ToolTip = "時(shí)間:#VALX\nPM2.5:#VALYug/m^3\tPM10:" + yData1[xData.IndexOf("#VALX") + 1] + "ug/m^3"; ? ? // 標(biāo)簽顯示 Inside:內(nèi)部,Outside:外部,Disabled:禁用 ? ? chart1.Series["Series1"]["PieLabelStyle"] = "Outside"; ? ? chart1.Series["Series1"].Points.DataBindXY(xData, yData); ? ? // 需要提示的信息 ? ? chart1.Series["Series2"].ToolTip = "時(shí)間:#VALX\nPM2.5:" + yData[xData.IndexOf("#VALX") + 1] + "ug/m^3\tPM10:#VALYug/m^3"; ? ? // 標(biāo)簽顯示 Inside:內(nèi)部,Outside:外部,Disabled:禁用 ? ? chart1.Series["Series2"]["PieLabelStyle"] = "Outside"; ? ? chart1.Series["Series2"].Points.DataBindXY(xData, yData1); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C#簡(jiǎn)單獲取全屏中鼠標(biāo)焦點(diǎn)位置坐標(biāo)的方法示例
- C#實(shí)現(xiàn)的鼠標(biāo)鉤子
- C#鍵盤(pán)鼠標(biāo)鉤子實(shí)例
- C#實(shí)現(xiàn)鼠標(biāo)移動(dòng)到曲線(xiàn)圖上顯示值的方法
- C#實(shí)現(xiàn)隨鼠標(biāo)移動(dòng)窗體實(shí)例
- C#實(shí)現(xiàn)獲取鼠標(biāo)句柄的方法
- C#中winform實(shí)現(xiàn)自動(dòng)觸發(fā)鼠標(biāo)、鍵盤(pán)事件的方法
- C# 鼠標(biāo)穿透窗體功能的實(shí)現(xiàn)方法
- 解決C#獲取鼠標(biāo)相對(duì)當(dāng)前窗口坐標(biāo)的實(shí)現(xiàn)方法
- 用C# 實(shí)現(xiàn)鼠標(biāo)框選效果的實(shí)現(xiàn)代碼
- C# 禁用鼠標(biāo)中間鍵的方法
- C#實(shí)現(xiàn)鼠標(biāo)消息捕獲
相關(guān)文章
C#實(shí)現(xiàn)把指定數(shù)據(jù)寫(xiě)入串口
這篇文章主要介紹了C#實(shí)現(xiàn)把指定數(shù)據(jù)寫(xiě)入串口,直接給出示例代碼,需要的朋友可以參考下2015-06-06C#中DataGridView導(dǎo)出Excel的兩種方法
這篇文章主要介紹了C#中DataGridView導(dǎo)出Excel的兩種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01C#動(dòng)態(tài)創(chuàng)建Access數(shù)據(jù)庫(kù)及表的方法
這篇文章主要介紹了C#動(dòng)態(tài)創(chuàng)建Access數(shù)據(jù)庫(kù)及表的方法,以實(shí)例形式分析了創(chuàng)建access數(shù)據(jù)庫(kù)及在access數(shù)據(jù)庫(kù)中建表的完整過(guò)程,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12C# 添加、修改以及刪除Excel迷你圖表的實(shí)現(xiàn)方法
下面小編就為大家分享一篇C# 添加、修改以及刪除Excel迷你圖表的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器小功能
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01用序列化實(shí)現(xiàn)List<T> 實(shí)例的深復(fù)制(推薦)
下面小編就為大家?guī)?lái)一篇用序列化實(shí)現(xiàn)List<T> 實(shí)例的深復(fù)制(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02WPF實(shí)現(xiàn)手風(fēng)琴式輪播圖切換效果
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)手風(fēng)琴式輪播圖切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09