Переопределение видимого значения в классе Application и последующее отображение основной формы вызывает переполнение стека - PullRequest
0 голосов
/ 20 апреля 2019

Я пытался создать программу, которая будет воспроизводить звук при запуске (потому что Microsoft теперь их явно ненавидит) и требует, чтобы форма полностью скрывалась при запуске программы, так что это просто звук, но мне также нужен доступформа, чтобы изменить настройки, когда мне нужно, чтобы успешно скрыть форму, я использую этот код:

Protected Overrides Sub SetVisibleCore(ByVal value As Boolean)
    If Not Me.IsHandleCreated Then
        Me.CreateHandle()
        value = False
    End If
    MyBase.SetVisibleCore(value)
End Sub

, который, насколько я понимаю, переопределяет запуск в классе Application и предотвращает запуск формы запуска,но я сделал так, чтобы он воспроизводил звук только в том случае, если через ярлык передается аргумент -t, так что я могу получить доступ к основной форме, чтобы легче менять настройки, когда мне нужно, вот как выглядит полный кодВы можете лучше понять, о чем я говорю

Protected Overrides Sub SetVisibleCore(ByVal value As Boolean)
    If Not Me.IsHandleCreated Then
        Me.CreateHandle()
        value = False
    End If
    MyBase.SetVisibleCore(value)
    Dim clArgs() As String = Environment.GetCommandLineArgs()
    If clArgs.Count() = 2 Then
        For i As Integer = 1 To 1 Step 1
            If clArgs(i) = "-t" Then
                Try
                    My.Computer.Audio.Play(My.Settings.startSound, AudioPlayMode.Background)
                Catch ex As Exception

                End Try
            Else
                Me.Show()
            End If
        Next
    End If
End Sub

Итак, чтобы подвести итог тому, что здесь происходит, начнем с проверки, есть ли аргумент -t, переданный в CommandLineArgs, и еслион будет воспроизводить звук, фактически не запуская форму, но если его нет, он запустит форму, но дляпо какой-то причине, если у меня в коде Me.show(), это вызовет переполнение стека, и я понятия не имею, почему это происходит, за исключением того, что код, скрывающий эту форму, вызывает его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...