Ошибка при открытии openfiledialog
Проблема: я сделал 3 формы, Form1, Form2 и Form3. В Form2 у меня есть кнопка drag 1 для просмотра файла, для этого я использовал Openfiledialog .Чистый компонент. при запуске отладки (Form1 load first) и нажатии на эту конкретную кнопку в form2 появляется сообщение об ошибке, которое выглядит следующим образом..
"Система.AccessViolationException: 'попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена.'"
"Система.AccessViolationException HResult=0x80004003 Message=попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена. Источник= Трассировка Стека:
"
Содержание формы:
Форма 1:
1. используется две кнопки для вызова form1 и form2. Коды приведены ниже,
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click form2.show() Me.Hide() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click form3.show() Me.Hide() End Sub
2. Datagridview, который подключен к базе данных Access accdb, коды для события загрузки Form1, как показано ниже,
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'Database1DataSet.Table1' table. You can move, or remove it, as needed. Me.Table1TableAdapter.Fill(Me.Database1DataSet.Table1) End Sub
Форма 2:
1. Используются три кнопки
a. кнопки 1 и 2 для вызова Форм1 и Форм3 соответственно. Коды приведены ниже,
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Form1.Show() Me.Hide() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Form3.Show() Me.Hide() End Sub
b. кнопка 3 для просмотра файла, я использовал очень простой код только для тестирования, коды приведены ниже
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click OpenFileDialog1.ShowDialog() End Sub
2. Datagridview, который подключен к той же базе данных и той же таблице, коды приведены ниже
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'Database1DataSet.Table1' table. You can move, or remove it, as needed. Me.Table1TableAdapter.Fill(Me.Database1DataSet.Table1) End Sub
Form3:
1. две кнопки: используются для вызова Форм1 и Форм2, код приведен ниже,
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Form1.Show() Me.Hide() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Form2.Show() Me.Hide() End Sub
2. Datagridview, который подключен к той же базе данных и той же таблице (как Form1 и Form2), коды приведены ниже,
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'Database1DataSet.Table1' table. You can move, or remove it, as needed. Me.Table1TableAdapter.Fill(Me.Database1DataSet.Table1) End Sub
Дополнительная информация: когда я отключаю код подключения базы данных во всех формах, проблем нет.
Что я уже пробовал:
Это уже примерный проект, где я использовал очень мало элементов управления. я поставил только возможный проблемный компонент или элементы управления, которые создают проблему.
3 формы
Кнопки
практическое руководство
база данных accdb
Richard MacCutchan
Зачем вам все эти бланки? Используйте одну форму, чтобы заставить работать вашу базовую логику, прежде чем добавлять другие. Если вам нужно показать разные "страницы" в разное время, то используйте Класс TabControl (System.Окна.Формы) | Microsoft Docs[^] или что-то подобное.