Posted 17 years ago
by Rick
-
Developer,
Visual Software Systems LLC
Version: 4.0.0249
Platform: .NET 2.0
Environment: Windows XP (32-bit)
I'm receiving a really strange IndexOutOfRange exception from SyntaxEditor while handling the DocumentModifiedChanged event on the initial change to a document. My project uses SE, DockManager, and BarManager, with DocumentWindows displayed in TabbedMDI mode. There's a SyntaxEditor control within the DocumentWindow. As far as I can determine, the problem is dependent upon the number of invisible lines in the editor. I have only experienced it when a single line is not within the visible area of the editor and there's only one DocumentWindow open. If I have more than one document window open, I do not receive the error. If I resize the DocumentWindow before modifying it, I do not receive the error. If I change the font size or turn off line numbers, I do not receive the error.
Here's the event code. It throws the error on the '.Text &= "*"' line and "Me" is the DocumentWindow:Here's the exception information:
I hope you can help. I've been pulling my hair out for most of the day over this one. I have tried to reproduce the exception in the SE sample project and from another small project, but have not been successful.
Thanks,
Rick
Here's the event code. It throws the error on the '.Text &= "*"' line and "Me" is the DocumentWindow:
Private Sub SyntaxEditor1_DocumentModifiedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles SyntaxEditor1.DocumentModifiedChanged
With Me
If SyntaxEditor1.Document.Modified Then
.Text &= "*"
Else
.Text = .Key
End If
.TitleBarText = .Text
End With
End Sub
System.IndexOutOfRangeException was unhandled
Message="Index was outside the bounds of the array."
Source="ActiproSoftware.SyntaxEditor.Net20"
StackTrace:
at be.b(Int32 A_0)
at bk.a(Int32 A_0)
at ActiproSoftware.SyntaxEditor.DisplayLineCollection.e(Int32 A_0)
at ActiproSoftware.SyntaxEditor.EditorView.a(Boolean A_0, Boolean A_1)
at ActiproSoftware.SyntaxEditor.EditorView.ArrangeCore()
at ActiproSoftware.WinUICore.UIElement.Arrange(Rectangle newBounds)
at ActiproSoftware.SyntaxEditor.SyntaxEditor.ArrangeCore()
at ActiproSoftware.WinUICore.UIControl.Arrange(Rectangle newBounds)
at ActiproSoftware.WinUICore.UIControl.UpdateLayout()
at ActiproSoftware.WinUICore.UIControl.Invalidate(InvalidationLevels levels, InvalidationTypes types)
at ActiproSoftware.WinUICore.UIControl.OnLayout(LayoutEventArgs e)
at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
at System.Windows.Forms.Control.PerformLayout()
at ActiproSoftware.WinUICore.UIContainerControl.UpdateLayout()
at ActiproSoftware.WinUICore.UIContainerControl.Invalidate(InvalidationLevels levels, InvalidationTypes types)
at ActiproSoftware.WinUICore.UIContainerControl.OnLayout(LayoutEventArgs e)
at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
at System.Windows.Forms.Control.PerformLayout()
at ActiproSoftware.WinUICore.UIControl.UpdateLayout()
at ActiproSoftware.WinUICore.UIControl.Invalidate(InvalidationLevels levels, InvalidationTypes types)
at ActiproSoftware.WinUICore.UIControl.OnLayout(LayoutEventArgs e)
at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
at System.Windows.Forms.Control.PerformLayout()
at ActiproSoftware.WinUICore.UIContainerControl.UpdateLayout()
at ActiproSoftware.WinUICore.UIContainerControl.Invalidate(InvalidationLevels levels, InvalidationTypes types)
at ActiproSoftware.WinUICore.UIContainerControl.OnLayout(LayoutEventArgs e)
at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
at System.Windows.Forms.Control.PerformLayout()
at ActiproSoftware.WinUICore.UIContainerControl.UpdateLayout()
at ActiproSoftware.WinUICore.UIContainerControl.Invalidate(InvalidationLevels levels, InvalidationTypes types)
at ActiproSoftware.WinUICore.UIContainerControl.OnLayout(LayoutEventArgs e)
at System.Windows.Forms.Control.PerformLayout(LayoutEventArgs args)
at System.Windows.Forms.Control.PerformLayout()
at ActiproSoftware.WinUICore.UIControl.UpdateLayout()
at ActiproSoftware.WinUICore.UIControl.Invalidate(InvalidationLevels levels, InvalidationTypes types)
at ActiproSoftware.UIStudio.TabStrip.TabStripPage.set_Text(String value)
at ActiproSoftware.UIStudio.Dock.TabbedMdiContainer.d()
at ActiproSoftware.UIStudio.Dock.TabbedMdiWindow.UpdateUI()
at ActiproSoftware.UIStudio.Dock.TabbedMdiWindow.set_Text(String value)
at WindowsApp.Editor.SyntaxEditor1_DocumentModifiedChanged(Object sender, EventArgs e) in P:\Visual Studio .NET 2005\WindowsApplication1\WindowsApplication1\ToolWindows\Editor.vb:line 1057
at ActiproSoftware.SyntaxEditor.SyntaxEditor.OnDocumentModifiedChanged(EventArgs e)
at ActiproSoftware.SyntaxEditor.SyntaxEditor.n(Object A_0, EventArgs A_1)
at ActiproSoftware.SyntaxEditor.Document.OnModifiedChanged(EventArgs e)
at ActiproSoftware.SyntaxEditor.Document.set_Modified(Boolean value)
at ActiproSoftware.SyntaxEditor.UndoRedo.b(DocumentModificationEventArgs A_0)
at ActiproSoftware.SyntaxEditor.Document.a(DocumentModification A_0, Boolean A_1)
at ActiproSoftware.SyntaxEditor.Document.b(DocumentModificationType A_0, Int32 A_1, Int32 A_2, String A_3, DocumentModificationOptions A_4, WeakReference A_5)
at ActiproSoftware.SyntaxEditor.Document.a(DocumentModificationType A_0, Int32 A_1, Int32 A_2, String A_3, DocumentModificationOptions A_4, WeakReference A_5)
at ActiproSoftware.SyntaxEditor.EditorView.a(DocumentModificationType A_0, String A_1, DocumentModificationOptions A_2)
at ActiproSoftware.SyntaxEditor.EditorView.ReplaceSelectedText(DocumentModificationType type, String text, DocumentModificationOptions options)
at ActiproSoftware.SyntaxEditor.Commands.TypingCommand.Execute(EditCommandContext context)
at ActiproSoftware.SyntaxEditor.MacroRecording.a(EditCommand A_0, EditCommandContext A_1)
at ActiproSoftware.SyntaxEditor.EditorView.a(EditCommand A_0, Boolean A_1)
at ActiproSoftware.SyntaxEditor.SyntaxEditor.a(EditorView A_0, Keys A_1, Char A_2, Boolean A_3)
at ActiproSoftware.SyntaxEditor.SyntaxEditor.OnKeyPress(KeyPressEventArgs e)
at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
at System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
at System.Windows.Forms.Control.WmKeyChar(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at ActiproSoftware.SyntaxEditor.SyntaxEditor.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(Int32 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(ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at WindowsApp.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
Thanks,
Rick