自定义控件的重新布局用什么方法?解决方案

自定义控件的重新布局用什么方法?
自定义一个控件,里边包括有TextBox也有Button等,我设定了一些属性,当这些属性发生改变时,我的TextBox和Button等就需要重新布局.我应该用哪种方法?
用这样的方法:
Public Overrides Sub Refresh()
'布局代码...
End Sub
Public Property xxx()
  Get
  Return ...
  End Get
  Set(ByVal value)
  ... = value
  Me.Refresh()
  End Set
End Property
还是用这样的方法:
Protected Overrides Sub WndProc(ByRef m As Windows.Forms.Message)
'布局代码...
End Sub

------解决方案--------------------
有没有Paint事件?
如果有的话,就用这个Paint事件做最好了。