2012-05-14 5 views
0

У меня есть форма UserControl, которую я использую в качестве формы ввода данных. Я постоянно показываю и скрываю новые данные.Два элемента управления отображаются перед другими

Часто (не все время) одни и те же две записные коробки отображаются на экране сначала на секунду, а затем отображается полный контроль.

Я нашел this link, Я не уверен, что это мое решение, но в любом случае я не знаю, где его называть и когда.

EDIT: Я заметил, что это происходит «только», если программа простаивает пару минут. Я мог показать и спрятать управление 10 раз один за другим без проблем. но если я скрою его и покажу его через 2-3 минуты, я получу такое поведение.

Я предполагаю, что это связано с временем, которое требуется для повторного подключения к базе данных MsSQL, чтобы вытащить данные. Но как я могу сказать, что эти 2 окна остаются невидимыми, как родитель, пока родитель не будет готов показать?

+0

Что вы делаете сразу после отображения элемента управления, но перед возвратом в основной цикл событий? В основном это звучит так, будто происходит что-то еще, прежде чем элементы управления получат возможность рисовать, например. доступ к базе данных или другой доступ к сети. Предположение состояло в том, чтобы сохранить контроль загруженным, но с видимым = ложным до последнего момента. – Ben

+0

Я делаю TicketsBox.Visible = Верно последнее, что возможно ... – Ezi

+0

Вы выполняете TicketsBox.Visible = False сначала, или, если он начинает отображаться? Поместите контрольную точку на событие Load для проверки. – Ben

ответ

0

Это действительно неряшливо и, вероятно, лучшее решение, но что, если вы попробуете что-то подобное.

If SlowControl.visible = True Then 
FastControl1.visible = True 
FastControl2.visible = True 
End If 

Я не уверен, если это будет работать, так как я не знаю, как повторить эту проблему, чтобы проверить, но попробовать и посмотреть, если он задерживает 2, которые перед игрой немного и Безразлично Покажите их, пока остальные не покажут.

Смежные вопросы