The size of RadForm under Windows XP is incorrect when its initial state as MDI child is Maximized and after that the state is changed to Normal.
Workaround:
Imports Telerik.WinControls.UI
Public Class BaseRadForm
Inherits RadForm
Private Shared LastWindowState As FormWindowState = FormWindowState.Normal
Private Shared suspendClientSizeChangedFlag As Boolean = False
Protected Overrides Sub OnResizeBegin(ByVal e As System.EventArgs)
Me.MaximumSize = New Size(0, 0)
MyBase.OnResizeBegin(e)
End Sub
Protected Overrides Sub OnActivated(ByVal e As System.EventArgs)
Me.MaximumSize = New Size(0, 0)
MyBase.OnActivated(e)
End Sub
Protected Overrides Sub OnDeactivate(ByVal e As System.EventArgs)
Me.MaximumSize = New Size(0, 0)
MyBase.OnDeactivate(e)
End Sub
Protected Overrides Sub OnClientSizeChanged(ByVal e As System.EventArgs)
Dim osInfo As System.OperatingSystem = System.Environment.OSVersion
If (suspendClientSizeChangedFlag OrElse osInfo.Version.Major >= 6) Then
Return
End If
If Not LastWindowState.Equals(Me.WindowState) Then
LastWindowState = Me.WindowState
If Me.WindowState.Equals(FormWindowState.Normal) Then
suspendClientSizeChangedFlag = True
Me.MaximumSize = New Size(500, 500)
suspendClientSizeChangedFlag = False
ElseIf Me.WindowState.Equals(FormWindowState.Maximized) Then
Me.MaximumSize = New Size(0, 0)
End If
Else
Me.MaximumSize = New Size(0, 0)
End If
MyBase.OnClientSizeChanged(e)
End Sub
End Class