Самописный контрол перестает работать, зарисовывается косыми гор. линиями. закрываю дизайнер формы, открываю, -все нормально, до следующего добавления какого-то контрола.
Это не ошибка, это всё нормально. Просто, когда ты добавляешь что-то на форму, прерывается какая-то прописаная тобой связь. И происходит то же самое, как если бы ты открыл контрол в дизайнере - на форме он становится недоступен.
Ну например, контрол пользуется функцией из модуля, внутри которого есть ссылка на форму.
Модуль:
- Код: Выделить всё
Public Sub test()
'
End Sub
Public Sub lalala()
Dim f As Form
Set f = form1
End Sub
Контрол:
- Код: Выделить всё
Private Sub UserControl_Initialize()
test
End Sub
Теперь, если ты положишь этот контрол на форму form1, он будет вести себя именно так, как ты описал.
А вот про мои исчезающие контролы:
У меня в одном проекте есть какая-то хитрая перекрёстная ссылка, которую я ни как не могу вычислить: отрываю проект и если сразу же пытаюсь его запустить, почти всегда (но не всегда, что любопытно!) вылетает табличка "Двойное определение!". Но бейсик затем ни куда носом не тычет! А со второй попытки проект запускается и больше ни разу эта фигня меня не беспокоит (пока не закрою и снова не открою проект).
Если я, забыв об этой странной особенности, не сделаю пробного запуска и сразу открою дизайнер формы, всё накрывается медным тазом: несколько контролов пропадает (в лог летит что-то о невозможности их создать), приходится выходить без сохранения и заходить снова.
В скомпилированном проекте ни разу этот глюк не вознкикал. Живёт он в одном-единстенном проекте, а сам этот проект былвал и на разных машинах и даже под разными версиями бейсика (русской и английской).
Есть ещё один странный глюк - если я по shif+F2 перехожу к определению констаннты из Enum, бейсик может перестать узнавать эти константы - говорит, что они не определены. Приходится перезапускать проект.