Form_Resize Свернуть в окно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Form_Resize Свернуть в окно

Сообщение kuhtiov » 30.06.2010 (Ср) 13:30

Здравствуйте!!
Есть код
Код: Выделить всё
Private Sub Form_Resize()

                         ' Øèðèíà
If Me.Width - 7800 > 0 Then
    searchstring.Width = Me.Width - 7700
    Label1.Width = Me.Width - 3000
    ListPackages.Width = Me.Width - 3000
    VScreen.Left = Me.Width - 2175
    TextdescriptionProg.Width = Me.Width - 3240
    TextNameProg.Width = Me.Width - 3240
    TextVerProg.Width = Me.Width - 3240
    TextRazrabProg.Width = Me.Width - 3240
    Line1.X1 = Me.Width - 165
    Line2.X2 = Me.Width - 165
Else
    Me.Enabled = False
    Me.Width = 7800
    Me.Enabled = True
End If

                        ' Âûñîòà
If Me.Height > 8385 Then
   Label1.Top = Me.Height - 4545
   TextNameProg.Top = Me.Height - 4425
   VScreen.Top = Me.Height - 4425
   Label2.Top = Me.Height - 4065
   TextVerProg.Top = Me.Height - 4065
   Label3.Top = Me.Height - 3825
   TextRazrabProg.Top = Me.Height - 3825
   Label4.Top = Me.Height - 3585
   TextdescriptionProg.Top = Me.Height - 3345
   ListPackages.Height = Me.Height - 5850
   KeyInstall.Top = Me.Height - 1305
   KeyExitProgram.Top = Me.Height - 1305
   Line1.Y1 = Me.Height - 1545
   Line1.Y2 = Me.Height - 1545
   Line2.Y1 = Me.Height - 1535
   Line2.Y2 = Me.Height - 1535
   Label6.Top = Me.Height - 1665
   CategoryList.Height = Me.Height - 3210
Else
    Me.Enabled = False
    Me.Height = 8390
    Me.Enabled = True

End If
   
Me.Enabled = True


End Sub

При разворачивании масштабируется нормально, а вот при "Свернуть в окно" масштабирование не происходит, пока не поменяю мышкой размер окна. В чем может быть причина?

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Form_Resize Свернуть в окно

Сообщение Alec » 30.06.2010 (Ср) 14:07

При запуске у тебя размер формы заведомо меньше 7800x8385, т.е. при запуске в Form_Resize ты устанавливаешь окну эти значения. При разворачивании размеры окна естественно увеличиваются и происходит масштабирование контролов. При восстановлении окна его размеры становятся опять 7800x8385 и условия для масштабирования не выполняются. Замени в строках
Код: Выделить всё
If Me.Width - 7800 > 0 Then
'---
If Me.Height > 8385 Then

знак "больше" на "больше или равно" - ">="
И еще, в начало процедуры вставь строку
Код: Выделить всё
If Me.WindowState = vbMinimized Then Exit Sub

иначе при сворачивании формы на панель задач будет ошибка.
Иногда лучше вовремя остановиться...
И начать заново!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Re: Form_Resize Свернуть в окно

Сообщение kuhtiov » 01.07.2010 (Чт) 5:27

Все верно, спасибо большое за помощь :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 86

    TopList