Да, это может исходить из вашего кода, как предположил Абель, но есть и очень глупая ошибка Visual Studio Designer, которая также приведет к открытию двойных или даже тройных диалоговых окон одним щелчком мыши.
Вы знаете, как дважды щелкнуть элемент или кнопку в Visual Studio Designer, и он создаст для него пустую подпрограмму (если существующий код не был найден)?Что ж, в Visual Studio / Basic есть очень досадная ошибка, когда двойной щелчок по новой кнопке (иногда) не создает новую подпрограмму, а случайным и необъяснимым образом прикрепляет событие нажатия этой кнопки к существующим подпрограммам без вашей воли или согласия.Если вы не обращаете внимания и забыли удалить событие щелчка мусора, в результате вы случайно запустите несколько сабов одновременно.
У меня есть пример этого ниже из проекта, над которым я работал:
Private Sub btnOptionsThemeLB_HK_Click(sender As System.Object, e As System.EventArgs) Handles btnOptionsThemeLB_HK.Click, btnOptionsThemeLB_Back2.Click, btnOptionsThemeLB_Back5.Click, btnOptionsThemeLB_Back4.Click
ColorMeNow.Color = tempOptionsThemeLB_HK
ColorMeNow.ShowDialog()
Me.btnOptionsThemeLB_HK.BackColor = ColorMeNow.Color
txtbOptionsThemeLB_HK_Red.Text = exRed(ColorMeNow.Color).ToString
txtbOptionsThemeLB_HK_Green.Text = exGreen(ColorMeNow.Color).ToString
txtbOptionsThemeLB_HK_Blue.Text = exBlue(ColorMeNow.Color).ToString
txtbOptionsThemeLB_HK_Hex.Text = exHexFromColor(ColorMeNow.Color)
tempOptionsThemeLB_HK = ColorMeNow.Color
'My.Settings.Save()
End Sub
Виновных здесь можно найти в строке суб-объявления.
Я долженимели:
Private Sub ... Handles btnOptionsThemeLB_HK.Click
Но вместо этого у меня было:
Private Sub ... Handles btnOptionsThemeLB_HK.Click, btnOptionsThemeLB_Back2.Click, btnOptionsThemeLB_Back5.Click, btnOptionsThemeLB_Back4.Click
Все эти подпрограммы открывают диалоги выбора цвета.Back2, Back4 и Back5 были добавлены в Sub btnOptionsThemeLB_HK_Click автоматически дизайнером, и я забыл удалить их.Во время выполнения, когда я нажимал кнопки Back2, Back4 и Back5, они приводили к двум диалогам (принадлежащий им и диалог для btnOptionsThemeLB_HK_Click).Удаление нежелательных событий щелчка исправит это.
Обновление: Кажется, что если вы хотите добавить новые кнопки, перетаскивая и копируя существующие, и если существующие копируемые уже связаны с существующим Sub, Visual Basicбудет предполагать, что вы хотите продублировать событие клика, и добавит новое событие клика к указанному Sub для каждой дублируемой кнопки.