【问题标题】:how to update the datasource of a chart in C# panel from another panel如何从另一个面板更新 C# 面板中图表的数据源
【发布时间】:2017-06-20 04:07:46
【问题描述】:

我正在创建一个包含 1 个表单和多个面板的应用程序,我将它们堆叠在另一个面板的顶部,因此我可以调用 panel.BringToFront() 来显示它。

我的第一个面板包含一个图表,其数据源来自我的数据库。 因此,一旦我从第二个面板添加或更改了一些数据,我需要更新第一个面板中的图表。我所做的是每次添加或更改某些内容时调用initializeChart()。问题是我在第一个面板中的图表没有更新。但是当我尝试更新同一面板内的表格时,它可以工作。这是我的initializeChart() 代码:

private void initializeChart()
{               
    chart1.DataSource = database.getMonthlyProfitList();
    chart1.Series["Income"].XValueMember = "Bulan";
    chart1.Series["Income"].YValueMembers = "Pendapatan";
}

那么你们有什么想法为什么我可以在同一个面板上更新视图但不能在其他面板上更新,如果可能的话,该怎么做?

【问题讨论】:

    标签: c# winforms panel


    【解决方案1】:

    在最后一行添加如下代码:

    private void initializeChart()
    {               
        chart1.DataSource = database.getMonthlyProfitList();
        chart1.Series["Income"].XValueMember = "Bulan";
        chart1.Series["Income"].YValueMembers = "Pendapatan";
        chart1.DataBind();
    }
    

    【讨论】:

    • 检查此链接@VickyS :msdn.microsoft.com/en-us/library/… 感谢您的反对票。我经常使用图表。
    • 感谢@Abhishek 它有效。你能解释一下 DataBind() 是做什么的吗?我也可以在 dataGridView 上使用它吗?
    • DataBind() 方法会将图表绑定到给定的数据源。它在我发布的上述链接中给出。 DataGridView 没有相同的选项。您只需每次设置数据源即可。为什么同样的事情在图表中不起作用是因为如果对数据源执行更多的数据操作,则必须显式调用DataBind()方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多