Hallo zusammen,
ich arbeite mich gerade in die Übergabe von Werten zwischen Formularen ein; dabei stoße ich auf eine Fehlermeldung (s.u.), für die ich keine Lösung finde, zumal das nur im Dialog zwischen diesen beiden Forms auftritt, nicht aber bei anderen Formularen meiner Anwendung, die vergleichbar gebaut sind:
Formular 1: "frmGruppen" mit einer Listbox "lstGruppen" und einem Button "btnAuswaehlen_Click";
letzterer öffnet ein zweites Formular und übergibt Werte.
Formular 2: "frmSQL"; dieses enthält ebenfalls eine Listbox, mehrere Textboxen, Buttons und eine Richttextbox.
Das Formular "frmSQL" wird normal geöffnet, die Daten korrekt angezeigt, ich kann zunächst arbeiten.
Wenn ich aber in "frmSQL" auf eine Textbox klicke, erhalte ich eine Fehlermeldung in der Routine des Buttons "btnAuswählen_Click" des 1. Formulars.
Fehlermeldung: "Zusätzliche Informationen: 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."
Der Wert des "frmSQL" ist: frmSQL {BEST_Control.frmSQL, Text: SQL-Statements editieren} BEST_Control.frmSQL
Da die restliche Anwendung einwandfrei läuft, will ich das mit dem geschützten Speicher nicht so einfach glauben...
Code des Buttons "btnAuswaehlen_Click":
Private Sub btnAuswaehlen_Click(sender As Object, e As EventArgs) Handles _
btnAuswaehlen.Click
'--------------------------
'Formular SQL-Editor öffnen
'--------------------------
Dim intID As Integer = 0
Dim strGruppeBezeichnung As String = ""
intID = Me.lstGruppen.SelectedItem.value
strGruppeBezeichnung = Me.lstGruppen.SelectedItem.key
Dim frmSQL As New frmSQL(intID, strGruppeBezeichnung)
'Formular aufrufen
'Hier tritt der Fehler auf, wenn ich im 2. Formular (frmSQL) auf eine Textbox
' klicke!
frmSQL.ShowDialog()
End Sub Hier der Code des zweiten Formulars:
Imports System.Windows.Forms
Public Class frmSQL
Private Access As New DBAccess
Private Oracle As New dbOracle
Private intID As Integer 'ID der Gruppe
Private strBezeichnung As String
Public Sub New(intID As Integer, strBezeichnung As String)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf
' hinzu.
Me.intID = intID
Me.lblGruppe.Text = strBezeichnung
'... weiterer Code
End Sub Ich hoffe, Ihr könnt mir helfen,
vielen Dank,
Vaubehnet
---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14) |