【问题标题】:ZedGraph C# bar chart - how to check which bar was clicked by mouse?ZedGraph C# 条形图 - 如何检查鼠标单击了哪个条形图?
【发布时间】:2010-07-19 22:24:43
【问题描述】:

我正在使用 ZedGraph 在 C# 中绘制我的图。我需要知道鼠标单击了哪个条形图(在条形图中)。我怎样才能做到这一点?有什么方法可以按点获取条形图,例如更改条形图的颜色?

【问题讨论】:

    标签: c# zedgraph


    【解决方案1】:

    使用MouseClick事件,找到你点击的点的X和Y坐标:

        zg1.MouseClick+=new MouseEventHandler(zg1_MouseClick3);
    
    
    
        private void zg1_MouseClick3(object sender, MouseEventArgs e)
        {
            PointF pt = (PointF)e.Location;
            double x,y;
            ((ZedGraphControl)sender).MasterPane[0].ReverseTransform(pt, out x, out y);
    
            // Do something with X and Y
        }
    

    请注意,我假设我们在第一个窗格(索引 0)上操作,但如果不是您的情况,那么您将必须找到单击了哪个窗格(参见 example)。

    当您拥有 X 和 Y 位置时,您应该能够轻松猜出点击了哪个栏,并使用该信息做任何您需要的事情。

    【讨论】:

    • 哇,我曾经使用基于pane.X/YAxisScalepane.Chart.Rectpt 仿射变换来计算这个; ReverseTransform 将我的 6 行代码缩减为 1 行!顺便说一句,您可以通过ZedGraphControl.GraphPane 访问图表窗格,并且为了避免将发件人转换为您可以注册到ZedGraphControl.MouseDown/UpEvent,其代表将ZedGraphControl 作为第一个参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多