В тестовом приложении, которое я строил, я наткнулся на эту ошибку при попытке нарисовать диаграмму. У меня есть некоторые псевдо-случайным образом сгенерированные данные, происходит сбой моего тестового приложения при попытке нарисовать диаграмму Ганта ...TeeChart Диаграмма Ганта «System.ArgumentOutOfRangeException была необработанной»
System.ArgumentOutOfRangeException был необработанное HResult = -2146233086 Message = Индекс был вне диапазона. Должен быть неотрицательным и меньше размера коллекции . Имя параметра: индекс ParamName = индекс Источник = mscorlib StackTrace: в System.ThrowHelper.ThrowArgumentOutOfRangeException (ExceptionArgument аргумента, ExceptionResource ресурс) на Steema.TeeChart.Styles.Gantt.CopyNextTasks() в Steema.TeeChart.Styles.Gantt .Draw() в Steema.TeeChart.Styles.Series.DrawSeries() в Steema.TeeChart.Chart.DoDraw (Graphics3D g, Int32 First, Int32 Last, Int32 Inc) в Steema.TeeChart.Chart.DrawAllSeries (Graphics3D г) при Steema.TeeChart.Chart.InternalDraw (Graphics г, булевы noTools) при Steema.TeeChart.Chart.InternalDraw (Графика г) при Steema.TeeChart.TChart.Draw (Графика г) при Steema.T eeChart.TChart.OnPaint (PaintEventArgs ре) при System.Windows.Forms.Control.PaintWithErrorHandling (PaintEventArgs е, Int16 слой) на System.Windows.Forms.Control.WmPaint (сообщение & м) на System.Windows.Forms .Control.WndProc (Сообщение & м) на System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Сообщение & м) на System.Windows.Forms.Control.ControlNativeWindow.WndProc (сообщение & м) на System.Windows .Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) InnerException:
Похоже, что он находится в логике рисования диаграммы TeetChart Gantt.
Мой проект находится здесь: https://www.dropbox.com/sh/haqspd4ux41n2uf/AADkj2H5GLd09oJTW-HrAVr3a?dl=0
если кто-то хочет, чтобы воспроизвести его.
Этот тестовый код правильно использовался со старой версией TeeChart 2.0.2670.26520.
Похоже, моя ошибка может быть связана с описанным здесь: Exception and endlessly growing designer generated code in InitializeComponent when using Steema TeeChart for .NET 2013 4.1.2013.05280 - What to do?
Любые идеи или предложения по денешься будет высоко ценится.
Спасибо за ответ Narcis. Кажется, я понимаю, где я ошибся. Последняя задача для каждой серии должна заканчиваться на -1. Однако я не уверен, что ваше предложение совершенно правильно. Я думаю: 'crewSeries.NextTasks [crewSeries.Count - 1] = (crewSeries.Count == crewDataView.Count - 1)? crewSeries.Count: -1; ' должно быть: ' crewSeries.NextTasks [crewSeries.Count - 1] = (crewSeries.Count <= crewDataView.Count - 1)? crewSeries.Count: -1; ' –
Да, точно, вы правы. Я исправил свой ответ на использование: crewSeries.NextTasks [crewSeries.Count - 1] = (crewSeries.Count == crewDataView.Count - 1)? -1: crewSeries.Count ;. Дело не в том, что последняя задача в серии должна указывать на -1, но должна указывать на существующий индекс в диапазоне 0 до crewSeries.Count - 1. –