Devexpress Chartcontrol 系列选择(并取一个系列值)
Devexpress Chartcontrol Series selection (and take a serie value )
我正在制作带有 chartcontrol
和 series
条的 Full-Stacked Bar
图表。我的图表非常有用。
我的问题是关于事件分别处理每个系列。我处理我的图表控件的 MouseClick
(或 ObjectHotTracked
和 ObjectSelected
。我也尝试过它们)事件但是当我点击它们时我无法单独获取每个系列值。
我该怎么做?我查阅了 devexpress 文档,但一无所获。
简而言之:我想取我点击的值。我该怎么做?
提前致谢
首先你必须将 ChartControl.RuntimeHitTesting
属性 设置为 true,然后尝试 ChartControl.MouseClick 中的代码:
private void Form1_Load(object sender, EventArgs e)
{
chartControl1.CrosshairEnabled = DefaultBoolean.False;
chartControl1.RuntimeHitTesting = true;
}
private void chartControl1_MouseClick(object sender, MouseEventArgs e)
{
// Obtain hit information under the test point.
ChartHitInfo hi = chartControl1.CalcHitInfo(e.X, e.Y);
// Obtain the series point under the test point.
SeriesPoint point = hi.SeriesPoint;
// Check whether the series point was clicked or not.
if (point != null)
{
// Obtain the series point argument.
string argument = "Argument: " + point.Argument.ToString();
// Obtain series point values.
string values = "Value(s): " + point.Values[0].ToString();
if (point.Values.Length > 1)
{
for (int i = 1; i < point.Values.Length; i++)
{
values = values + ", " + point.Values[i].ToString();
}
}
MessageBox.Show(argument + "\n" + values, "SeriesPoint Data");
}
}
我正在制作带有 chartcontrol
和 series
条的 Full-Stacked Bar
图表。我的图表非常有用。
我的问题是关于事件分别处理每个系列。我处理我的图表控件的 MouseClick
(或 ObjectHotTracked
和 ObjectSelected
。我也尝试过它们)事件但是当我点击它们时我无法单独获取每个系列值。
我该怎么做?我查阅了 devexpress 文档,但一无所获。
简而言之:我想取我点击的值。我该怎么做?
提前致谢
首先你必须将 ChartControl.RuntimeHitTesting
属性 设置为 true,然后尝试 ChartControl.MouseClick 中的代码:
private void Form1_Load(object sender, EventArgs e)
{
chartControl1.CrosshairEnabled = DefaultBoolean.False;
chartControl1.RuntimeHitTesting = true;
}
private void chartControl1_MouseClick(object sender, MouseEventArgs e)
{
// Obtain hit information under the test point.
ChartHitInfo hi = chartControl1.CalcHitInfo(e.X, e.Y);
// Obtain the series point under the test point.
SeriesPoint point = hi.SeriesPoint;
// Check whether the series point was clicked or not.
if (point != null)
{
// Obtain the series point argument.
string argument = "Argument: " + point.Argument.ToString();
// Obtain series point values.
string values = "Value(s): " + point.Values[0].ToString();
if (point.Values.Length > 1)
{
for (int i = 1; i < point.Values.Length; i++)
{
values = values + ", " + point.Values[i].ToString();
}
}
MessageBox.Show(argument + "\n" + values, "SeriesPoint Data");
}
}