Значение не может быть нулевым. Имя параметра: шрифт
Преобразование приложения из использования Chart FX 7 в 8. Crosstabdataprovider теперь устарел. После изменения кода для использования Pivoting (теперь доступно в chart fx 8) приложение сначала работает нормально, однако если вы нажмете кнопку на форме windows, чтобы отобразить диаграмму с различными значениями, появится следующая ошибка.
"Значение не может быть нулевым. Имя параметра: шрифт"
Необработанное исключение типа 'System.ArgumentNullException' произошло в системе.Drawing.dll
Дополнительная информация: значение не может быть нулевым.
новый кодекс:
Dim listProvider As New ListProvider(dataSource) chart.DataSource = listProvider Dim FieldName As New NumericDataField() FieldName.DataPath = Me.SelectedValueType.FieldName chart.DataSourceSettings.DataFields.Add(FieldName) Dim XAxisFieldName As New NumericDataField() XAxisFieldName.DataPath = formConfiguration.XAxisFieldName chart.DataSourceSettings.DataFields.Add(XAxisFieldName) chart.Series(0).Text = formConfiguration.SeriesControllingListBox.SelectedValue.ToString()
старый код:
Dim SeriesFieldName As New NumericDataField() SeriesFieldName.DataPath = formConfiguration.SeriesFieldName chart.DataSourceSettings.DataFields.Add(SeriesFieldName) Dim adt As New AnalysisDataTransformer() adt.Pivoting.Add(XAxisFieldName) chart.DataSourceSettings.Transformers.Add(adt) Dim listProvider As New ListProvider(dataSource) Dim crosstabProvider As New CrosstabDataProvider With {.DataSource = listProvider} With chart.DataSourceSettings.Fields .Add(New FieldMap(formConfiguration.SeriesFieldName, FieldUsage.ColumnHeading)) .Add(New FieldMap(formConfiguration.XAxisFieldName, FieldUsage.RowHeading)) .Add(New FieldMap(Me.SelectedValueType.FieldName, FieldUsage.Value)) End With chart.DataSource = crosstabProvider
Fredrik Bornander
Где это исключение выбрасывается? Какая линия?
civic060
В классе обработчика исключений (см. ниже). <br>
<br>
HandleException общественную функцию(как byval E как исключение, handlinginstanceid, которое как byval в качестве идентификатора GUID) В Качестве Исключения Реализует IExceptionHandler.HandleException
Дим результат как свойство dialogresult = меня.ShowThreadExceptionDialog(е handlinginstanceid, которое)
Вернуть е
Конечная Функция
Частная ShowThreadExceptionDialog функция(как byval E как исключение, handlinginstanceid, которое как byval в качестве идентификатора GUID) как свойство dialogresult&ЛТ;БР&ГТ;
<br>
'Отформатируйте исключение<br>
Dim sb As StringBuilder = New StringBuilder<br>
Dim writer As StringWriter = New StringWriter(sb)<br>
Дим форматирования как AppTextExceptionFormatter = новый AppTextExceptionFormatter(писатель, е, handlinginstanceid, которое)&ЛТ;БР&ГТ;
форматер.Формат()<br>
<br>
Dim errorMsg As String = sb.ToString()<br>
<br>
С Моим ... Заявлением.Информация<br>
Возвратите MessageBox.Show(errorMsg, String.Формат("{0} Error - v{1}.{2}.{3}.{4}", .название, версия.основной номер версии.вспомогательная версия.Сборка, Версия.Редакция), MessageBoxButtons.Хорошо, MessageBoxIcon.Информация)<br>
Конец с<br>
<br>
Конечная Функция
Fredrik Bornander
Вы уверены, что его выбрасывают оттуда? Разве это не просто место, где он отображается?
Посмотрите на трассировку стека исключения и выясните строку из нее, или включите "break on exceptions".
civic060
Включение break on exceptions также нарушает приведенный выше код, когда он пытается отформатировать и отобразить ошибку. Система.Рисования не было в моем окне, поэтому пришлось добавить это и включить выброшенные исключения.
Вот как выглядит трассировка стека.
в системе.Рисование.Графика.MeasureString(String text, Font font, SizeF layoutArea, StringFormat stringFormat)
в системе.Рисование.Графика.MeasureString(String text, Font font, SizeF layoutArea)
в системе.Рисование.Графика.MeasureString(текст строки, шрифт шрифта)
в SoftwareFX.WinForms.Внутренний.GraphicsEx.MeasureString(строка s, шрифта, типа int32 значение maxwidth, логическое useCharacterRanges)
в ChartFX.WinForms.Название.а(IGraphicsEx A_0, A_1 Логическое)
в ChartFX.WinForms.Название.а(г A_0, прямоугольник[] A_1, прямоугольник&амп; А_2, логическое A_3, A_4 HighlightState)
в ChartFX.WinForms.TitleCollection.b(g A_0, прямоугольник[] A_1)
в ChartFX.Приложения WinForms.г. б(логическое A_0, A_1 логическое)
в ChartFX.Приложения WinForms.г. к()
в ChartFX.WinForms.Chart.a(PaintBar A_0, IGraphicsEx A_1, прямоугольник A_2)