From d9cc0ce391d574400e6292037f958e966c7a1172 Mon Sep 17 00:00:00 2001 From: Raphael Noeldner Date: Thu, 6 Apr 2023 16:28:55 +0200 Subject: [PATCH] Fixed bug in SetRowHeight --- .../ClassLibraryCSV/FileReader/CsvFileReader.cs | 14 ++++++++------ .../FileReader/DataReaderWrapper.cs | 3 +++ Library/WinFormControls/FilteredDataGridView.cs | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Library/ClassLibraryCSV/FileReader/CsvFileReader.cs b/Library/ClassLibraryCSV/FileReader/CsvFileReader.cs index 7deeaaad..25bc32f9 100644 --- a/Library/ClassLibraryCSV/FileReader/CsvFileReader.cs +++ b/Library/ClassLibraryCSV/FileReader/CsvFileReader.cs @@ -1042,15 +1042,17 @@ private char ReadChar() MoveNext(peekNextChar); // handling for "" that is not only representing a " but also closes the text - peekNextChar = Peek(); - if (m_ContextSensitiveQualifier && (peekNextChar == m_FieldDelimiter - || peekNextChar == cCr || peekNextChar == cLf)) postData = true; + if (m_ContextSensitiveQualifier) + { + peekNextChar = Peek(); + if (peekNextChar == m_FieldDelimiter || peekNextChar == cCr || peekNextChar == cLf) + postData = true; + } continue; } // a single " should be regarded as closing when its followed by the delimiter - if (m_ContextSensitiveQualifier && (peekNextChar == m_FieldDelimiter - || peekNextChar == cCr || peekNextChar == cLf)) + if (m_ContextSensitiveQualifier && (peekNextChar == m_FieldDelimiter || peekNextChar == cCr || peekNextChar == cLf)) { postData = true; continue; @@ -1207,7 +1209,7 @@ public new async ValueTask DisposeAsync() { await DisposeAsyncCore(); - Dispose(false); + Dispose(false); } protected async ValueTask DisposeAsyncCore() diff --git a/Library/ClassLibraryCSV/FileReader/DataReaderWrapper.cs b/Library/ClassLibraryCSV/FileReader/DataReaderWrapper.cs index 2e3272f7..5a485f1b 100644 --- a/Library/ClassLibraryCSV/FileReader/DataReaderWrapper.cs +++ b/Library/ClassLibraryCSV/FileReader/DataReaderWrapper.cs @@ -18,6 +18,7 @@ using System.Collections.Generic; using System.Data; using System.Data.Common; +using System.Diagnostics; using System.Threading; using System.Threading.Tasks; @@ -265,6 +266,7 @@ public override DataTable GetSchemaTable() public override string GetString(int ordinal) => Convert.ToString(GetValue(ordinal)) ?? string.Empty; /// + [DebuggerStepThrough] public override object GetValue(int ordinal) { if (ordinal == ReaderMapping.ColNumStartLine) @@ -286,6 +288,7 @@ public override int GetValues(object[] values) => DataReader.GetValues(values); /// + [DebuggerStepThrough] public override bool IsDBNull(int ordinal) { if (ordinal == ReaderMapping.ColNumStartLine || ordinal == ReaderMapping.ColNumEndLine || diff --git a/Library/WinFormControls/FilteredDataGridView.cs b/Library/WinFormControls/FilteredDataGridView.cs index d9b1fb3d..f9b65e51 100644 --- a/Library/WinFormControls/FilteredDataGridView.cs +++ b/Library/WinFormControls/FilteredDataGridView.cs @@ -510,7 +510,7 @@ private void SetRowHeight() .Where(column => column.Visible && column.ValueType == typeof(string)).ToList(); var visibleRowsCount = DisplayedRowCount(true); - var firstDisplayedRowIndex = FirstDisplayedCell.RowIndex; + var firstDisplayedRowIndex = FirstDisplayedCell?.RowIndex ?? 0; for (int rowIndex = firstDisplayedRowIndex; rowIndex < firstDisplayedRowIndex + visibleRowsCount; rowIndex++) Rows[rowIndex].Height = GetDesiredRowHeight(Rows[rowIndex], visible);