Не понимаю почему кнопка не двигается

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

Не понимаю почему кнопка не двигается

Сообщение igor_m » 21.04.2004 (Ср) 9:35

Есть на форме кнопка. Ее свойства (положение) можно изменить только когда форма загружена. Как бы правильно-то сначала элементы на форме расположить а потом уж форму показывать, но так не получается. Сначала приходится форму загрузить, а потом уж двигать по ней элементы.

frmGraph.Show
frmGraph.btnClose.Left = frmGraph.Width - frmGraph.btnClose.Width - 500
frmGraph.btnClose.Top = frmGraph.Height - frmGraph.btnClose.Height - 500

Соответственно в Private Sub Form_Load() тоже это сделать не удается - сначала нужно загрузить.
А как сделать наоборот - сначала скомпоновать все на форме, а потом ее показать? Т.е. нужно сначала загрузить форму в память, что-то с ней сделать а потом уж показывать. Кроме как через Visible делается это как-то?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.04.2004 (Ср) 9:39

Вначале Load frmGraph.
Потом перемещай все, что надо.
Потом frmGraph.Show.
Lasciate ogni speranza, voi ch'entrate.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 21.04.2004 (Ср) 9:55

Спасибо тебе, Большой Человек! :)

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 21.04.2004 (Ср) 10:07

Alibek, не работает!

Load frmGraph
frmGraph.btnClose.Left = frmGraph.Width - frmGraph.btnClose.Width - 500
frmGraph.btnClose.Top = frmGraph.Height - frmGraph.btnClose.Height - 500
frmGraph.Show

А так - нормально:
frmGraph.Show
frmGraph.btnClose.Left = frmGraph.Width - frmGraph.btnClose.Width - 500
frmGraph.btnClose.Top = frmGraph.Height - frmGraph.btnClose.Height - 500

Чего-то я не понимаю.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.04.2004 (Ср) 10:11

Всю жизнь работало...
Может у тебя на Form_Load какой-нибудь код имеется, который мешает?
Как еще один вариант, может перемещение кнопок переместить в Form_Resize, это событие происходит, когда форма меняет размеры и (что помоему подойдет тебе) когда форма отображается первый раз.
Lasciate ogni speranza, voi ch'entrate.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 21.04.2004 (Ср) 10:57

С этого Resize все и началось. Сделал по-простому - чтоб графики рисовались. Ну работает худо-бедно и ладно. Но все это в реальном времени - окошко то развернешь, то свернешь, чтоб не мешалось, а у меня в resize код и он все время вываливается в ошибку. Надоело все время помнить, чтоб это окошко не трогать, и решил облагородить все это - упростить код, сделать модульную конструкцию, забить ошибки.
А оказалось все непросто :))) Сразу уперся в мелочи, можно сказать в фигню какую-то, типа размещения элементов, масштабов...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.04.2004 (Ср) 11:01

Как еще один вариант, определяешь в коде формы Public Sub Init(). Вызываешь таким образом: Load frmGraph ... frmGraph.Init ... frmGraph.Show (хотя .Show можно сунуть в Init). А в Init выполняешь все действия, которые нужно делать при инициализации формы.
Но первый вариант должен быть рабочим, у меня он работает в куче проектов, должно быть у тебя в Form_Load что-то имеется.
Lasciate ogni speranza, voi ch'entrate.


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

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

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

    TopList