【问题标题】:how to generate a SelectionRangeChanged Event Programatically ChartControl WinForms如何以编程方式生成 SelectedindexChanged 事件 GridControl WinForms
【发布时间】:2012-07-08 12:13:39
【问题描述】:

想要以编程方式创建一个 selectionRangeChanged 事件,但并没有真正了解如何去做

 private void btn_10D_Click(object sender, EventArgs e)
    {
        double varRange = 10;
        double var_Sel1 = DatesX[0].ToOADate();

        Chart1.ChartAreas["ChartArea1"].CursorX.IsUserEnabled = true;
        Chart1.ChartAreas["ChartArea1"].CursorX.IsUserSelectionEnabled = true;
        Chart1.ChartAreas["ChartArea1"].CursorX.SelectionColor = Color.LightGray;
        Chart1.ChartAreas["ChartArea1"].CursorX.SelectionStart = var_Sel1;
        Chart1.ChartAreas["ChartArea1"].CursorX.SelectionEnd = varRange + var_Sel1;
        Chart1.ChartAreas["ChartArea1"].CursorX.Position = varRange + var_Sel1;
        Chart1.SelectionRangeChanged += new EventHandler<CursorEventArgs>(Chart1_SelectionRangeChanged);

    }

    void Chart1_SelectionRangeChanged(object sender, CursorEventArgs e)
    {
        throw new NotImplementedException();
    }

谢谢

【问题讨论】:

    标签: c# winforms visual-studio-2010 charts


    【解决方案1】:

    对于 C# 中的所有事件来说,如果类创建者没有做出额外的努力来允许在类之外触发事件,就不可能触发它们。

    根据 MSDN

    Chart.SelectionRangeChanged 事件在选择开始位置或结束位置改变时发生。

    但从我的测试中我可以看到,只有当它被用户而不是程序更改时才会触发它。

    如果我正确理解您的意图,您想处理图表下的那些小按钮,btn_10D_Click 方法是其中一个的点击处理程序。试着移动这条线

    Chart1.SelectionRangeChanged += new EventHandler<CursorEventArgs>(Chart1_SelectionRangeChanged);
    

    到您的构造函数并确保它被调用一次(从其他处理程序中删除它)。这将确保在用户更改选择时执行您的代码。如果您想为您的按钮执行相同的代码,您只需将处理程序内容提取到方法并将其称为表单按钮单击处理程序。

    void Chart1_SelectionRangeChanged(object sender, CursorEventArgs e)
    {
        DoSomething(/*some arguments if you need them*/);
    }
    private void btn_10D_Click(object sender, EventArgs e)
    {
         \\your code
         DoSomething();
     }
    

    【讨论】:

    • 谢谢 Rafal tat 真的很管用……还有一件事你知道使用 horizo​​mtzlScrollBar 移动 tat 选择吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    相关资源
    最近更新 更多