gigi78

autosizing 4 textboxes in usercontrol

Sep 16th, 2020 (edited)
1,069
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public Class controlloPresonalizzato
  2.  
  3.     Public WithEvents Casella1 As New TextBox
  4.     Public WithEvents Casella2 As New TextBox
  5.     Public WithEvents Casella3 As New TextBox
  6.     Public WithEvents Casella4 As New TextBox
  7.     Private LarghezzaCasella As Double
  8.     Private AltezzaCasella As Double
  9.     Private _proporzioneLarghezzaControllo As Double
  10.     Private _proporzioneAltezzaControllo As Double
  11.  
  12.     Public Property ProporzioneLarghezzaControllo As Double
  13.         Get
  14.             Return _proporzioneLarghezzaControllo
  15.         End Get
  16.         Set(value As Double)
  17.             _proporzioneLarghezzaControllo = value
  18.             If IsNothing(Me.Parent) = False Then
  19.                 Me.Width = Me.Parent.Width * _proporzioneLarghezzaControllo
  20.             End If
  21.         End Set
  22.     End Property
  23.  
  24.     Public Property proporzioneAltezzaControllo As Double
  25.         Get
  26.             Return _proporzioneAltezzaControllo
  27.         End Get
  28.         Set(value As Double)
  29.             _proporzioneAltezzaControllo = value
  30.             If IsNothing(Me.Parent) = False Then
  31.                 Me.Height = Me.Parent.Height * _proporzioneAltezzaControllo
  32.             End If
  33.         End Set
  34.     End Property
  35.  
  36.     Private Sub UserControl1_Load(sender As Object, e As EventArgs) Handles Me.Load
  37.  
  38.         ProporzioneLarghezzaControllo = Me.Width / Me.Parent.Width
  39.         proporzioneAltezzaControllo = Me.Height / Me.Parent.Height
  40.         Casella1.Top = 10
  41.         Casella2.Top = 10
  42.         Casella3.Top = 10
  43.         Casella4.Top = 10
  44.         Casella1.Multiline = True
  45.         Casella2.Multiline = True
  46.         Casella3.Multiline = True
  47.         Casella4.Multiline = True
  48.  
  49.         Me.Controls.AddRange(New Control() {Casella1, Casella2, Casella3, Casella4})
  50.         AddHandler Me.Parent.SizeChanged, AddressOf RidimensionaControlloPadre
  51.  
  52.     End Sub
  53.  
  54.     Private Sub RidimensionaControlloPadre(sender As Object, e As EventArgs)
  55.  
  56.         Me.Size = New Size(Me.Parent.Width * proporzioneLarghezzaControllo, Me.Parent.Height * proporzioneAltezzaControllo)
  57.  
  58.     End Sub
  59.  
  60.     Private Sub UserControl1_Resize(sender As Object, e As EventArgs) Handles Me.Resize
  61.  
  62.         If IsNothing(Me.Parent) = False Then
  63.             ProporzioneLarghezzaControllo = Me.Width / Me.Parent.Width
  64.             proporzioneAltezzaControllo = Me.Height / Me.Parent.Height
  65.         End If
  66.  
  67.         AltezzaCasella = Me.Height - 20
  68.         LarghezzaCasella = (Me.Width - 50) / 4
  69.         Casella1.Width = LarghezzaCasella
  70.         Casella2.Width = LarghezzaCasella
  71.         Casella3.Width = LarghezzaCasella
  72.         Casella4.Width = LarghezzaCasella
  73.         Casella1.Height = AltezzaCasella
  74.         Casella2.Height = AltezzaCasella
  75.         Casella3.Height = AltezzaCasella
  76.         Casella4.Height = AltezzaCasella
  77.         Casella1.Left = 10
  78.         Casella2.Left = 20 + LarghezzaCasella
  79.         Casella3.Left = 30 + LarghezzaCasella * 2
  80.         Casella4.Left = 40 + LarghezzaCasella * 3
  81.  
  82.     End Sub
  83.  
  84.     Protected Overrides Sub OnHandleDestroyed(e As EventArgs)
  85.         MyBase.OnHandleDestroyed(e)
  86.  
  87.         RemoveHandler Me.Parent.SizeChanged, AddressOf RidimensionaControlloPadre
  88.     End Sub
  89.  
  90. End Class
  91.  
RAW Paste Data