Нет, насколько я знаю, нет простого способа увеличения. В частности, шрифты имеют фиксированный аспект, поэтому вы не можете легко сделать их выше или шире, чем обычно, если вы произвольно изменяете размер формы.
Однако вы можете принудительно изменить размер, чтобы сохранить его соотношение сторон, и затем вы можете рекурсивно просмотреть все ваши элементы управления, идентифицировать их типы и соответствующим образом масштабировать их в событии Resize формы - то есть:
Public Class Form1
Private lblSize As Single
Private Fwid As Integer
Private Fheight As Integer
Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
Me.Height = Fheight * Me.Width / Fwid
For Each ctl In Me.Controls
If TypeOf ctl Is Label Then
Dim lbl As Label = DirectCast(ctl, Label)
Dim nFont As New Font(FontFamily.GenericSansSerif, lblSize * Me.Width / Fwid, FontStyle.Regular, GraphicsUnit.Point)
lbl.Font = nFont
End If
Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Fwid = Me.Width
Fheight = Me.Height
lblSize = Label1.Font.Size
End Sub
End Class
Это необходимо сделать для каждого типа управления, который вы используете. Я только сделал размер шрифта здесь, но вы должны были бы масштабировать позицию и т.д., а также. Перерисовать это не будет красиво, но это будет работать. Лучшей альтернативой может быть использование WPF, в котором доступно больше инструментов для подобных вещей.
Кроме того, если у вас есть элементы управления внутри элементов управления (вкладки, групповые блоки и т. Д.), Вы должны использовать рекурсию, чтобы найти их все - что-то вроде:
Public Shared Function GetAllControlsRecurs(ByVal list As List(Of Control), ByVal parent As Control, ByVal ctrlType As System.Type) As List(Of Control)
If Parent Is Nothing Then Return list
If Parent.GetType Is ctrlType Then
list.Add(Parent)
End If
For Each child As Control In Parent.Controls
GetAllControlsRecurs(list, child, ctrlType)
Next
Return list
End Function
где вы бы использовали вышеуказанную функцию, например:
Dim buttonList As New List(Of Control)
Dim checkboxList As New List(Of Control)
'etc...
For Each ctl As Button In GetAllControlsRecurs(buttonList, Me, GetType(Button))
' Do something...
Next
For Each ctl As CheckBox In GetAllControlsRecurs(checkboxList, Me, GetType(CheckBox))
' Do Something...
Next
Также - принятие ответов, вероятно, побудит людей помочь вам.