Jag har jobbat lite med flerspråk och har lagt in Serialization, det inbyggda språkstödet.
Jag har en formInstallningar, varifrån jag bl a ställer in det språk man vill ha, jag sparar det i registret och kör:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(country);
//osv
TestData obj = new TestData();
obj.Name = "Country";
obj.Nytt_Country = country;
XmlSerializer serializer = new XmlSerializer(obj.GetType());
Stream stream = new FileStream(filenamexml, FileMode.Create,FileAccess.Write, FileShare.None);
serializer.Serialize(stream, obj);
stream.Close();
(det är bara en l i t e n del av koden.
När jag stänger det formuläret så hadde jag önskat att jag kunnat uppdatera Form1, så att jag kunde få språket med en gång, gan inte hitta vad jag skall göra, mer än att starta om programmet. Tills jag av någon anledning råkade trycka på inställningar en gång till, DÅ FUNGERADE DET.
Skulle det inte vara möjligt att göra så när jag stänger ner Inställningar?
Antingen kan du väl läsa in från registret efter det att du stängt ned din andra form:
DinForm s = new DinForm();
s.ShowDialog();
...
läs in registret igen
eller alternativt så skapar du ett par propertys för de värdena du behöver från din andra form och hämtar dem. Ett exempel där jag skapar en ny form visar den och om jag har klickat OK så tar jag emot diverse textboxar från formen:
SiteManagerForm s = new SiteManagerForm();
if (s.ShowDialog() == DialogResult.OK)
{
Connect(s.TBUrl.Text, s.TBPort.Text, s.TBUserName.Text, s.TBPass.Text);
}