Hallo,
mir reicht die Autovervollständigung die Visual Studio mitliefert leider nicht aus. Ich möchte das er nicht nur die Werte in der Auswahl anzeigt die mit dem eingegebenen Zeichen änfängt sondern alle, die die Zeichen an irgendweiner Stelle beinhaltet. Mein Lösungsansatz ging hierbei über eine AutoCompleteStringCollection in der nur die passenden einträge ausgewählt werden:
Aus irgendeinem Grund bekomm ich aber immer an Ende dieser Funktion eine AccessViolationException und ich hab keine Ahnung warum. Vielleicht kann mir ja jemand weiterhelfen oder mir sagen dass mein Ansatz komplett verkehrt ist
System.AccessViolationException wurde nicht behandelt.
Message="Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."
Source="System.Windows.Forms"
StackTrace:
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(ApplicationContext context)
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
bei GemarkungsAuskunftSystem.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException:
mir reicht die Autovervollständigung die Visual Studio mitliefert leider nicht aus. Ich möchte das er nicht nur die Werte in der Auswahl anzeigt die mit dem eingegebenen Zeichen änfängt sondern alle, die die Zeichen an irgendweiner Stelle beinhaltet. Mein Lösungsansatz ging hierbei über eine AutoCompleteStringCollection in der nur die passenden einträge ausgewählt werden:
VB.NET-Quellcode
- Private Sub Com_Gemarkung_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Com_Gemarkung.TextChanged
- Dim entry As System.Collections.Generic.KeyValuePair(Of String, String)
- Dim autoComSource As New Windows.Forms.AutoCompleteStringCollection
- For Each entry In gemarkungen
- If (entry.Key.Contains(Com_Gemarkung.Text)) Then
- autoComSource.Add(entry.Key)
- End If
- Next
- Com_Gemarkung.AutoCompleteCustomSource = autoComSource
- Com_Gemarkung.AutoCompleteSource = AutoCompleteSource.CustomSource
- Com_Gemarkung.AutoCompleteMode = AutoCompleteMode.SuggestAppend
- End Sub
Aus irgendeinem Grund bekomm ich aber immer an Ende dieser Funktion eine AccessViolationException und ich hab keine Ahnung warum. Vielleicht kann mir ja jemand weiterhelfen oder mir sagen dass mein Ansatz komplett verkehrt ist
System.AccessViolationException wurde nicht behandelt.
Message="Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."
Source="System.Windows.Forms"
StackTrace:
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(ApplicationContext context)
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
bei GemarkungsAuskunftSystem.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException: