我使用win表单(C#.Net Framework 3.5)在运行时创建了一个图表。
我想让这个图表的图例项目互动。
我的要求是,当用户点击图例中的颜色项目时 - 应打开颜色托盘,当用户从托盘中选择颜色时,所选颜色应应用于外部系列数据项。
我如何实现这一目标?简而言之,如何为图例项添加单击事件处理程序?
感谢任何帮助。 NB
答案 0 :(得分:7)
最后找到答案......在此处发布代码,以便对其他人有所帮助。
private void HeapStatsChart_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
HitTestResult result = HeapStatsChart.HitTest(e.X, e.Y);
if (result != null && result.Object != null)
{
// When user hits the LegendItem
if (result.Object is LegendItem)
{
// Legend item result
LegendItem legendItem = (LegendItem)result.Object;
ColorDialog Colour = new ColorDialog();
if (Colour.ShowDialog() == DialogResult.OK)
{
HeapChartColorPref[Convert.ToInt16(legendItem.Name.Substring(4))].color = Colour.Color;
GenerateHeapStatsChart(HeapChartColorPref);
}
}
}
}
答案 1 :(得分:0)
您可以通过从给定文本的ColorDialog
上调用的方法调用Click Event
来实现您想要的效果。从中检索用户选择的颜色非常简单。示例代码:
ColorDialog curColorDialog = new ColorDialog();
if (curColorDialog.ShowDialog() == DialogResult.OK)
{
Color selectedColor = curColorDialog.Color;
}
如果您没有与您希望用户点击的确切位置相关联的特定点击事件,则可以在目标位置的图例之上放置另一个Control
。例如:Label
(替换文字)或Panel
(透明,覆盖每个名称)。