One addendum to the above content is designing WinForms application for Middle-Eastern market (for use with BiDi scripts). To fully support RTL (Right To Left) locales such as Arabic, you need to set the RightToLeft property of your form to Yes. In addition you need to enable "mirroring". Unfortunately there is no System.Windows.Forms property that corresponds to mirroring. But you can easily achieve it by overriding the CreateParams property:
Protected Overrides ReadOnly Property CreateParams()As
System.Windows.Forms.CreateParams
Get
'Retrieve the CreateParams class to change the style
Dim CP As System.Windows.Forms.CreateParams
CP = MyBase.CreateParams
'If the control needs RTL add these styles
If _Mirrored Then
CP.ExStyle = CP.ExStyle Or &H400000 Or &H100000
End If
Return CP
End Get
End Property
In C# you do the same as:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
if(_Mirrored)
{
CreateParams cp = base.CreateParams;
cp.ExStyle = cp.ExStyle | 0x400000 | 0x100000;
}
return cp;
}
}
*minor modifications made to the code on 6 May 05, thanks Anonymous!
This is what your form would appear like once it is "mirroring" correctly:
Here some links that are must visit if software globalization/localization is your cup of tea: