Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 30.07.2006
Сообщений: 33

Не срабатывает центровка контроллов по ширине формы

11.10.2014, 21:52. Показов 1975. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Поясните, плз, почему не срабатывает центровка контроллов по ширине формы?
На форме два PictureBox (один в другом)
(не смейтесь над ремарками - пользуюсь редко - забывается ))
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Form_Load()
'открываем окно на весь экран
Me.WindowState = vbMaximized
 
'режим задания размеров в пикселях
Me.ScaleMode = vbPixels
 
'ширина боксов по ширине картинки и высоте формы
Picture1.Width = 450
Picture2.Width = 450
 
Picture1.Height = Form1.Height
Picture2.Height = Form1.Height
 
'выравнивание боксов по верху формы
Picture1.Top = 0
Picture2.Top = 0
 
 
'выравнивание боксов по ширине формы
Picture1.Move (Form1.ScaleWidth - Picture1.Width) / 2
Picture2.Move (Picture1.Width - Picture1.Width) / 2
 
 
End Sub
Спасибо за внимание.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2014, 21:52
Ответы с готовыми решениями:

Постоянная центровка формы
Возможно ли реализовать, после каждого изменения размера формы, возвращать ее в центр экрана?

Word и центровка формы
В свойствах формы, стоит StartPosition = CenterScreen. В коде я пробегаюсь по нескольким word файлам, редактируя их. И не могу понять...

Центровка формы со значениями из AJAX запроса
Есть всплывающие окно, которое получает содержимое с сервера по AJAX, данные успешно получаются, но окно надо как-то центрировать по...

29
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
12.10.2014, 13:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SAI777 Посмотреть сообщение
вставить ограничение по высоте картинки?
Ну подумай. К примеру возьмем ограничение "вверх", просто запрещаем отрицательные значения для scl
Visual Basic
1
If Scl<0 Then Scl=0
Для ограничения "вниз", аналогично, только ограничение будет: размер картинки - размер формы.
0
0 / 0 / 0
Регистрация: 30.07.2006
Сообщений: 33
12.10.2014, 13:35  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Все дело из-за единиц измерения, во вторых форма имеет 2 размера: размер окна и размер клиентской области.
так если я не вношу изменений (а ScaleMode=3) должно быть ровно?
0
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
12.10.2014, 14:06
SAI777, StdPicture возвращает размеры в HIMTETRIC (10 мкм)
0
0 / 0 / 0
Регистрация: 30.07.2006
Сообщений: 33
13.10.2014, 00:57  [ТС]
ох! витиеватым методом отцентровал-таки картинку ))
Visual Basic
1
2
3
4
Dim ShirinaScr As Long 
ShirinaScr = Screen.Width / Screen.TwipsPerPixelY
PicW = pic.Width * 0.567 / 15
    PaintPicture pic, (ShirinaScr - PicW) / 2, scl
Цитата Сообщение от The trick Посмотреть сообщение
ограничение "вверх", просто запрещаем отрицательные значения для scl
на самом деле работает с точностью до наоборот
Visual Basic
1
If scl > 0 Then scl = 0
а это:
Цитата Сообщение от The trick Посмотреть сообщение
Для ограничения "вниз", аналогично, только ограничение будет: размер картинки - размер формы.
не работает вовсе ((.
Вложения
Тип файла: zip Движуха-2-tmp.zip (684.1 Кб, 4 просмотров)
0
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
13.10.2014, 09:34
Лучший ответ Сообщение было отмечено SAI777 как решение

Решение

SAI777, Во-первых:
Visual Basic
1
2
PicH = ScaleY(pic.Height, vbHimetric, vbPixels)
PicW = ScaleX(pic.Width, vbHimetric, vbPixels)
Во-вторых:
Visual Basic
1
If scl < Me.ScaleHeight - PicH Then scl = Me.ScaleHeight - PicH
1
0 / 0 / 0
Регистрация: 30.07.2006
Сообщений: 33
13.10.2014, 10:43  [ТС]
The trick, супер!
Конечно, "во-первых" красивей! ), да и "во-вторых" понятней.
А почему, когда я циклом увеличиваю толщину линии окружности
Visual Basic
1
2
3
4
Dim Rc As Integer
For Rc = 250 To 255
    Circle (ScaleWidth \ 2, ScaleHeight \ 2), Rc, vbBlack
Next
она получается такой ажурной? Это можно побороть? или только вставка картинки?
Спасибо за внимание.
0
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
13.10.2014, 10:46
Цитата Сообщение от SAI777 Посмотреть сообщение
А почему, когда я циклом увеличиваю толщину линии окружности
Для этого есть свойство DrawWidth.
1
0 / 0 / 0
Регистрация: 30.07.2006
Сообщений: 33
13.10.2014, 12:54  [ТС]
The trick, так это, вроде, у шейпа (причём там BorderWidth), а у метода Circle только три аргумента или я ошибаюсь? https://www.cyberforum.ru/post171356.html
Впрочем, можно и шейп поставить - не существенно.

Добавлено через 1 час 3 минуты
Оказалось - существенно. Если добавляю шейп на форму, то он стирается движущейся картинкой (.

Добавлено через 22 минуты
Всё! разобрался ) Извините.
0
0 / 0 / 0
Регистрация: 30.07.2006
Сообщений: 33
14.10.2014, 21:01  [ТС]
Уважаемый, The trick! Можно ли с кодом из Вашего файла заставить двигаться картинку по горизонтали? (Наивно предположил, что достаточно поставить переменную scl на место Х1 - не сработало).

Добавлено через 53 минуты
и как заставить (по клику на картинку) заблокировать/разблокировать скроллинг?
0
0 / 0 / 0
Регистрация: 30.07.2006
Сообщений: 33
15.10.2014, 01:35  [ТС]
почему нет плавной прокрутки?
Вложения
Тип файла: zip Проба.zip (694.4 Кб, 4 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2014, 01:35

Установление ширины элемента разделённой формы по ширине основной формы
Здравствуйте! Подскажите пожалуйста, как в разделённой форме ширину элемента формы автоматически устанавливать по ширине основной формы в...

Перечисление контроллов формы: как изменить их порядок
Dim ctrl As Control Dim s As string s=&quot;&quot; For Each ctrl In forma.Controls s=s &amp; ctrl.name &amp; Chr(10) Next Msgbox s ...

Регулировка размеров контроллов при ресайзе формы
Доброго времени суток! Вопрос: как сделать регулировку размера rtb и webbrowser на форме? Как например в дриамвиере?

Перебор всех контроллов формы для получения их свойств
Есть форма в которой 28 checkbox, 4 button, 4 radio, 2 textbox. Как правильнее передавать их состояние в программу? если можно,...

Получить информацию о новой ширине формы
Почему такой способ получения информации о ширине формы: Form1 form = new Form1(); MessageBox.Show(form.Width.ToString());...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru