Hallo Leute,
da ich mich von meiner Arbeit ablenken wollte, und einige Personen Interesse an einer Komponente haben, mit der man die Sprache eines (GUI)Programmes dynamisch ändern kann, hab ich mal etwas geschrieben.
Einfache Properties können ganz einfach geändert werden.=>
Control myObj = new Label();
string resourceKey = "myObj.Text";
string propertyName = "Text";
ResourceManagerEx.Items.Add(myObj, resourceKey, propertyName);
Ausserdem gibt es noch die Möglichkeit statt eines Properties einen delegate anzugeben,
der dem Objekt den Wert zuweist.=>
ResourceManagerEx.Items.Add(myObj, resourceKey, myDelegate);
...
private void MyDelegate(object o, string resourceKey, object value) {
((Label)o).Text = value.ToString();
}
Die Sprache kann so verändert werden:
ResourceManagerEx.ResourceCulture = new CultureInfo("DE");
Ein kleines Testprogramm ist auch dabei.
Wie ich gerade gemerkt habe, gibt es ab .NET 2.0 die Methode ComboBox.RefreshItems(). Somit muss man nicht mehr "von Hand" die ComboBox aktualisieren.
Geht das nicht auch einfacher??z\Z.B Click event und dann z.B richtextbox1.Text = "Hello!" oder so ahnlich