MSChart:我怎样才能更改一些AxisLabel

时间:2017-02-26 18:48:55

标签: c# charts mschart

我想为我的图表

更改一些AxisLabelsin系列
            DataTable dt = new DataTable();
            SqlCommand s = new SqlCommand("ReportMonthly", SCon);
            s.CommandType = CommandType.StoredProcedure;
            s.Parameters.AddWithValue("@Y", Y);
            SCon.Open();
            SqlDataReader dr = s.ExecuteReader();
            dt.Load(dr);            
            chtWRMonthly.DataSource = dt;
            chtWRMonthly.Series["Sold"].XValueMember = "x";            
            chtWRMonthly.Series["sRemaining"].XValueMember = "x";            
            chtWRMonthly.Series["Bought"].XValueMember = "x";            
            chtWRMonthly.Series["bRemaining"].XValueMember = "x";

            chtWRMonthly.Series["Sold"].YValueMembers = "sTAccount";
            chtWRMonthly.Series["sRemaining"].YValueMembers = "sRemaining";
            chtWRMonthly.Series["Bought"].YValueMembers = "bTAccount";
            chtWRMonthly.Series["bRemaining"].YValueMembers = "bRemaining";
            SCon.Close();

            //انتصاب نام ماه ها
            foreach (Series SR in chtWRMonthly.Series)
            {
                foreach (DataPoint DP in SR.Points)
                {
                    switch (DP.AxisLabel)
                    {
                        case "1":
                            DP.AxisLabel = "x1";
                            break;
                        case "2":
                            DP.AxisLabel = "x2";
                            break;
                        case "3":
                            DP.AxisLabel = "x3";
                            break;
                        case "4":
                            DP.AxisLabel = "x4";
                            break;
                  }                        
                }
             }

我尝试通过Switch更改它们但没有任何反应。

1 个答案:

答案 0 :(得分:2)

您的DataPoints没有真实AxisLabels。它们显示的字符串是从DataPoint.XValues

自动创建的

所以你的开关永远不会命中。

替换

 switch (DP.AxisLabel)

通过

 switch (DP.XValue + "")

它会起作用。

请注意,我已将double XValue转换为string以符合您的switch代码。如果您将switch选项更改为numbers,则可以直接使用它。

之后您已设置AxisLabels,您可以将它们用于测试,但直到那时才会使用..

请参阅各种图表标签的here for a good overview