C#图表ArguementOutOfRangeExecption

马克·拉斯穆森

我有以下abstract课程:

    public abstract class ChartHelper
{
    public System.Windows.Forms.DataVisualization.Charting.Chart resultChart { get; set; }
    public String TimeType { get; set; }
    protected  List<IObject> _datalist;
    protected  TimeType _timeType;
    protected  DateTime _stopDate;
    protected  DateTime _startDate;


    protected void SetXAsisTime()
    {
        if (resultChart != null)
        {
            foreach (var series in resultChart.Series)
            {
                series.XValueType = _timeType != DateUtils.TimeType.Weeks ? ChartValueType.DateTime : ChartValueType.String;
            }
            resultChart.ChartAreas[0].AxisX.LabelStyle.Format = GetLabelFormat();
            resultChart.ChartAreas[0].AxisX.Interval = 1;
            resultChart.ChartAreas[0].AxisX.IntervalType = GetIntervalType();
            resultChart.ChartAreas[0].AxisX.IntervalOffset = 1;
        }
    }

    protected String GetLabelFormat()
    {
        switch (_timeType)
        {
            case DateUtils.TimeType.Weeks:
                return "Uge:";
            case DateUtils.TimeType.Months:
                return "MM";
            case DateUtils.TimeType.Years:
                return "YYYY";
            default:
                return "DD";
        }
    }

现在,当我尝试设置AxisX标签格式时: resultChart.ChartAreas[0].AxisX.LabelStyle.Format = GetLabelFormat();

我收到以下错误消息:

  System.ArgumentOutOfRangeException was unhandled
  Message=Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
  Source=mscorlib
  ParamName=index
  StackTrace:
       at System.ThrowHelper.ThrowArgumentOutOfRangeException()
       at System.Collections.Generic.List`1.get_Item(Int32 index)
       at System.Collections.ObjectModel.Collection`1.get_Item(Int32 index)
       at Henvendelser.Chart.ChartHelper.SetXAsisTime()
       at Henvendelser.Chart.EmailChartGenerator.GetChart()
       at Henvendelser.Models.EmailModel.GetEmailChart(DateTime start, DateTime end, TimeType timeType)
       at Henvendelser.Main.SetHenvendelserData(DateTime from, DateTime to)
       at Henvendelser.Main.btn_getData_Click(Object sender, EventArgs e)
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at Henvendelser.Program.Main()
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

有人可以告诉我我想念的吗?还是我做错了什么?

工作

ChartAreas系列仍然是空的(Count == 0)。因此,您无法访问index处的项目0这导致你ArgumentOutOfRangeException

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#删除Excel图表

来自分类Dev

打印图表的预览c#

来自分类Dev

图表COUNT查询C#?

来自分类Dev

图表的打印预览c#

来自分类Dev

C#图表的缩放轴

来自分类Dev

Gant图表/ C#,WPF视图

来自分类Dev

如何使用C#定位Excel图表

来自分类Dev

C#图表排序不起作用

来自分类Dev

在C#中更新Excel系列图表

来自分类Dev

如何从C#生成图形和图表

来自分类Dev

C#实时向图表添加点

来自分类Dev

最大轴 x 图表 c#

来自分类Dev

C#图表中的轴相等(如何在C#图表控件中使轴相等)

来自分类Dev

C#图表显示不必要的更改

来自分类Dev

如何在C#中禁用图表放大控件?

来自分类Dev

C#将WinForms图表绑定到对象列表

来自分类Dev

在C#中向图表添加水平线

来自分类Dev

C#的一个图表中的多个箱线图

来自分类Dev

C#使用EPPLUS更改Excel图表轴格式

来自分类Dev

C#图表类-X轴的自定义标签?

来自分类Dev

如何在C#中获取图表的Excel XValue

来自分类Dev

将轴名称添加到图表C#

来自分类Dev

使用CultureInfo格式化C#图表轴

来自分类Dev

在C#中选择图表上的多个部分

来自分类Dev

C#生成带有图表模板的Excel工作表

来自分类Dev

在C#中绘制轴间隔不连续的图表

来自分类Dev

图表高度区域大小在C#中增加

来自分类Dev

从图表控件C#中删除网格线

来自分类Dev

图表绘图仪的亮度(动态数据显示)C#