During startup of my app, I get a string from a settings file that determines which language to display the form in, eg "en-GB", "fr-FR" etc, which works ok.

VB Code:
  1. Public Sub ReadSettings()
  2. '
  3. 'lang = "en-GB", "fr-FR", etc...
  4. Dim ci As New System.Globalization.CultureInfo(lang, False)
  5. System.Threading.Thread.CurrentThread.CurrentUICulture = ci
  6. '
  7. 'etc
  8. '
  9. End Sub
My Sub Main:
VB Code:
  1. Public Sub Main
  2. ReadSettings()
  3. Application.Run(New frmJobDisplay)
  4. End Sub

The current thread is started using the culture determined from the settings file and the main form (which is localized) opens with the correct localized display. (Text and size of controls etc..)

My question is this: On the form I have a setting that changes the desired operator language and saves it to the settings file. To apply this change I currently have to exit the app and restart because all the resources for the form are read and applied on form load in the InitializeComponent sub.

What would be the best way to 'refresh' the form without exiting the app? I am assuming I must close the form and restart it somehow.

Thanks for any tips!