Вопрос о высоте формы VB.NET

У меня есть проект VB6.0, и я хочу преобразовать его в VB.Net.

В моем приложении VB6.0 высота некоторых дочерних форм MDI составляет 17000, а ширина - 13000. Теперь я хочу установить тот же размер формы в формах VB.Net, но он позволяет максимальную ширину формы = 1036, высоту = 780 для разрешения 1024x768. .

Как увеличить размер формы с таким же разрешением?

Также я хочу распечатать это, поэтому я не могу использовать свойство автоматической прокрутки форм vb.net.

Спасибо


person Krantz    schedule 30.08.2008    source источник


Ответы (4)


Ваши классические блоки VB находятся в так называемых «твипах». Скорее всего, вы сможете разделить эти числа на 12 или 15 (в зависимости от того, используете ли вы большой или мелкий шрифт), и вы получите определенное количество пикселей.

person Matt Dawdy    schedule 30.08.2008

Я немного погуглил и наткнулся на this < / а> ..

Да, этот размер формы ограничен размером рабочего стола (точнее, SystemInformation.MaxWindowTrackSize). Это делается в защищенном виртуальном методе Form.SetBoundsCore. Это поведение нельзя изменить, по крайней мере, без большой работы и использования PInvoke.

Также поддерживается здесь

Размер формы в дизайнере ограничен размером вашего экрана.

Похоже, у вас дисплей с разрешением 1600x1200, поэтому дизайнер не позволит вам увеличить его до 1212.

Если бы у вас был дисплей с разрешением 1280x1024, то дизайнер не позволил бы вам увеличить его, чем 1036.

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

Похоже, это невозможно ... Это странное поведение, потому что похоже, что вы ограничены тем, что есть на вашей машине разработчика ...

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

person Rob Cooper    schedule 30.08.2008

Вы ограничены в дизайнере, но не в коде:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Height = 17000 'or whatever you need
    Me.Width = 13000
End Sub
person Eduardo Molteni    schedule 30.09.2008
comment
Я только что проверил это предложение. Это предложение не работает в событии form_load. Исходный размер формы будет ограничен размером экрана в соответствии с вопросом. - person jm.; 09.10.2008

Я думаю, что блоки VB6 не совпадают с VB.Net. Итак, вам нужно сделать преобразование.

person jfs    schedule 30.08.2008