C# Chartコントロールをダブルクリックしたときの値を取りたい
お世話になります。
Chart
コントロールを使用して、グラフを作成するコードを書いています。
棒グラフの表示まではうまくいき、その棒グラフの中の棒をダブルクリックすることで、
ダブルクリックされたデータのXの要素とYの要素を取得したいと思っています。
他サイト様のサンプルを拝見し、Yの要素の取得まではできたのですが、X軸の要素が
取得できません。
下記にコードを記述します。
//ダブルクリックしたとき
private void chart1_DoubleClick(object sender, EventArgs e)
{
HitTestResult result;
result = this.chart1.HitTest(((MouseEventArgs)e).X, ((MouseEventArgs)e).Y);
if (result.ChartElementType == ChartElementType.DataPoint)
{
DataPoint dp = result.Series.Points[result.PointIndex];
MessageBox.Show(dp.XValue + "," + dp.YValues[0]);
}
}
//グラフにデータを入れているところ(一部のみ抜粋)
for (int idx = 0; idx < dic.Length; idx++)
{
Dictionary d = dic[idx];
System.Windows.Forms.DataVisualization.Charting.DataPoint dp = new System.Windows.Forms.DataVisualization.Charting.DataPoint();
dp.SetValueXY(d["year"] + "年" + d["month"] + "月" + d["day"] + "日", int.Parse(d["sheets"])); //XとYの値を設定
dp.IsValueShownAsLabel = true;
this.series2.Points.Add(dp);
}
Dictionary
クラスに、年、月、日のデータと、それに該当する値(sheets)があり、
それをグラフに落としています。
取得するところでは、dp.YValues[0]
で取り出すことはできたのですが、XValue
では
常に0、そもそもdouble
型の返り値でしか拾えません。"2016年4月14日" とかの
文字列、要は表示されているものそのものを拾いたいのですが、どうすれば
良いでしょうか。
それとも、そもそもメソッドの使用方法が間違っているのでしょうか。
ご教授ください。
よろしくお願いいたします。