User Control lokalisierbar machen
-
Guten Morgen,
Wie mache ich ein UserControl lokalisierbar? Wenn ich ein normales Control benutze (z.B. Label) hat dieses Control z.B. die Text-Eigenschaft, die ich lokalisieren kann.
Nun habe ich ein UserControl (eine horizontale Linie, realisiert durch ein Label und noch ein Label). Wenn ich das so implementiere:
public class hLine : UserControl { public hLine() { InitializeComponent(); } string textval; public string Textval { get { return textval; } set { textval = value; this.theLabel.Text = value; } } private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); } private void InitializeComponent() { this.theLine = new System.Windows.Forms.Label(); this.theLabel = new System.Windows.Forms.Label(); this.SuspendLayout(); // // theLine // this.theLine.Anchor = Top | Left | Right; this.theLine.BorderStyle = BorderStyle.Fixed3D; this.theLine.Location = new System.Drawing.Point(0, 18); this.theLine.Name = "theLine"; this.theLine.Size = new System.Drawing.Size(189, 2); this.theLine.TabIndex = 0; // // theLabel // this.theLabel.Anchor = Top | Left | Right; this.theLabel.Location = new System.Drawing.Point(0, 0); this.theLabel.Name = "theLabel"; this.theLabel.Size = new System.Drawing.Size(189, 20); this.theLabel.TabIndex = 1; this.theLabel.Text = "label1"; // // hLine // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.theLine); this.Controls.Add(this.theLabel); this.Name = "hLine"; this.Size = new System.Drawing.Size(189, 23); this.ResumeLayout(false); } private System.Windows.Forms.Label theLabel; private System.Windows.Forms.Label theLine; }
Dann ist die Eigenschaft Textval nicht lokalisierbar. Wie macht man sowas denn richtig?
Danke
-
1. Das Propertie Localizable=true des UserControls im Designer setzen. Dann bekommst Du für jede Sprache eine Resourcendatei wie es auch beim Forms der Fall ist.
oder
2. Das Attribut [Localizable(true)] für ausgewählte Properties IN dem Usercontrol festlegen. Dann verhält es sich wie Standard-Controls und die Lokalisierung findet in der Resourcendatei des Parent statt, also i.d.R. einer Form.
-
Super, mit dem [Localizable(true)] funktioniert es. Danke dir