У меня есть локальный юг, который позволяет пользователю перемещать строку datagridview, вызванную нажатием кнопки. Суб работает отлично в отладчике, но когда он выходит из управления, он переносится в вызывающую форму, то есть текущая форма закрывается. Это также происходит, когда ни одна строка не перемещается, то есть когда выполняется одно из условий прерывания на входе. Просто: выход из этого раздела закроет форму!?!vb2013 выход из локального закрытия закрывает форму
Private Sub btnMove_Click(sender As Object, e As EventArgs) Handles btnMove.Click
Dim rowToGo As DataGridViewRow
Dim rtgIndex As Integer = 0
If (dgvAuftrag.RowCount <= 1) or (dgvAuftrag.CurrentRow Is Nothing) Then
Beep()
Exit Sub
End If
rowToGo = dgvAuftrag.CurrentRow
rtgIndex = rowToGo.Index + 1
If (rtgIndex >= dgvAuftrag.RowCount) Then rtgIndex = 0
Try
dgvAuftrag.Rows.Remove(rowToGo)
dgvAuftrag.Rows.Insert(rtgIndex, rowToGo)
Catch ex As Exception
IssueErrorMessage(ex)
End Try
End Sub
Все остальные локальные подсистемы и функции работают нормально, только этот ведет себя странно. Любые идеи, как исправить/избежать этой ошибки?
Добавить обработчик события для события FormClosing формы. Установите на него контрольную точку и посмотрите на стек вызовов. –
Спасибо, Ханс. Стек стека показывает, что 'FormClosing' был вызван' Sub ShowDialog'. Странно, потому что это «перегрузка», чтобы иметь возможность передавать параметры в форму. Все, что он делает, это скопировать параметры в локальные формы vars и 'Call MyBase.ShowDialog()'. –
ShowDialog() скорее относится к проблеме, эта информация относится к вопросу. Найдите код, который присваивает свойство DialogResult формы. Посмотрите на свойство кнопки DialogResult. –