В проекте, который я делаю, у меня есть эта ошибка, которую мне не удается обнаружить. Это главный формуляр с TabControl, который загружают другие формуляры внутри каждой из Ваших закладок. В alguién он переместил что-то похожее его? Какая-то идея, состоящая в том, что он может производить это?
- Я издаю:
Спасибо за ответ. Он повторяет мне эти три линии снова и снова (Также я издаю изображение):
MdiTabControl.dll! MdiTabControl. TabControl. TabPageCollection.set_IndexOf (MdiTabControl. TabPage TabPage, Integer оцените) Линию 287 + 0xd Байт
MdiTabControl.dll! MdiTabControl. TabControl. SelectItem (MdiTabControl. TabPage TabPage) Линия 1607 + 0x22 Байт MdiTabControl.dll!
MdiTabControl. TabControl. ArrangeItems () Линия 1532 + 0x46 Байт
Я не знаю очень хорошо, что он пробует сделать контроль точно. Он случается обычно, изменив экран или приуменьшив, достаточно случайным способом (не всегда он случается). Какая-то идея, состоящая в том, что он мог бы производить это? Менять контроль на самого VS могло бы решать это?
EDIT2: Это единственные линии кода, где он контролирует MDItabcontrol:
Public Sub openForm(ByRef frm As Form)
Try
TabControl1.Visible = True
TabControl1.TabPages.Add(frm)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub resizeform(ByVal sender As System.Object)
Try
TabControl1.Width = sender.Size.Width - 20
TabControl1.Height = sender.Size.Height - ToolStrip1.Height - TabControl1.TabHeight
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
If Me.Visible Then
resizeform(sender)
End If
End Sub
Public Sub repintarfondo()
Try
If TabControl1.TabPages.Count = 1 Then
TabControl1.Visible = False
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Поскольку вы можете видеть, у меня нет никакого события для тех, которые появляются в изображении. Поэтому он удивляет меня так.
Приветствие и спасибо за помощь.
Это ошибка избытка батарейки вызовов.
Когда производится исключение, смотри окно батарейки вызовов.
Эта ошибка случается, когда встречаются перекурсивные операции. Хорошо метод называет сам себя перекурсивным способом или звонит в метод, который в свою очередь звонит в начальный метод.
Это вызывает, что приложение между в бесконечном цикле реализовывая названные к этому методу до тех пор, пока он не прибывает на пределе превосхождения предела батарейки вызовов и случается ошибка.
Как он говорил тебе, проверь окно батарейки вызовов в моменте, в котором случается ошибка, и ты сможешь видеть или методы, которые производят проблему.
StackOverflow - типичная ошибка бесконечного возврата. В твоем случае, есть ясный подозреваемый
Private Sub Form1_SizeChanged....
.....
resizeform(sender)
видимо ты меняешь размер form на событие изменения размера этого form. Он пахнет у меня бесконечно перекурсивом....
StackOverflowException
- один excepciГіn, что не может контролироваться кроме того, что будет брошен самим cГіdigo, который ты программируешь. Самое рекомендуемое для этих случаев состоит в том, чтобы проверять батарейку ejecuciГіn, так как оно типично происходит, когда встречаются бесконечные циклы вызовов, уже будьте в перекурсивных функциях непрямая или прямая. SegГєn я вижу проблему эта в контроле MdiTabControl, что ты мог бы делать, состоит в том, чтобы загружать код этого, который находит в codeproject , и использовать это как ссылка, чтобы оценивать с большей деталью, которые являются факторами, что probocan исключение