Lots of weird things happen when you try to develop a right-to-left internationalized software package.
For example, You *think* your menus on the main form are fine, in a right-to-left state, but when you *maximize* the form all the menus suddenly are re-ordered left-to-right. Like magic.
How to fix it - though it seems really stupid- it works. In this example I am making my form maximized from code along with the lines that changes the menus back to their rightful state:
private void Form1_Load(object sender, System.EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
// WORKAROUND RightToLeft Problem
this.OnRightToLeftChanged(EventArgs.Empty);
}