2017-02-17 5 views
0
zu öffnen

Wie kann ich diesen Code in eine Funktion schreiben? Ich brauche das an mehreren Punkten und ich denke, es ist nicht gut, es die ganze Zeit zu schreiben - Ursache für Änderungen ... Der einzige Unterschied ist der Formname.Kombinieren, um verschiedene Formulare mit Parameter

if (language == "english") 
{ 
    FormEng eng = new FormEng(); 
    eng.DeliveryId = iDelId; 
    eng.CustomerId = iCustomerId; 
    eng.Year = iYear; 
    eng.Show(); 
} 
else if (language == "german") 
{ 
    FormGer ger = new FormGer(); 
    ger.DeliveryId = iDelId; 
    ger.CustomerId = iCustomerId; 
    ger.Year = iYear; 
    ger.Show(); 
} 
+0

, wenn Sie versuchen, herauszufinden, wie die Lokalisierung funktioniert, https://msdn.microsoft.com/en-us/library/ y99d1cd3 (v = vs.71) .aspx – Will

Antwort

0

definieren Basisklasse FormAny mit gemeinsamen Elemente wie DeliveryId, CustomerId. Definieren Sie dann die abgeleiteten Klassen FormEng : FormAny und FormGer : FormAny. Das Obige kann wie folgt geändert werden:

FormAny f = null; 
switch (language) 
{ 
    case "english": f = new FormEng(); break; 
    case "german": f = new FormGer(); break; 
} 
f.DeliveryId = iDelId; 
f.CustomerId = iCustomerId; 
f.Year = iYear; 
f.Show(); 
0

Sie könnten eine Schnittstelle oder Elternklasse erstellen, von der Ihre Formulare implementiert/abgeleitet werden. Etwas wie folgt aus:

public abstract class ParentForm : Form 
{ 
    public int DeliveryId { get; set; } 
    public int CustomerId { get; set; } 
    public int Year { get; set; } 
} 

public class FormEng : ParentForm 
{ 
} 

public class FormGer : ParentForm 
{ 
} 

Dann, es zu benutzen, würden Sie dies tun:

ParentForm form; 
if (language == "english") 
    form = new FormEng(); 
else 
    form = new FormGer(); 

form.DeliveryId = iDelId; 
form.CustomerId = iCustomerId; 
form.Year = iYear; 
form.Show(); 
1

Das ist nicht der richtige Ansatz eine mehrsprachige Anwendung zu machen. Sie sollten wirklich Sprachressourcen dafür verwenden. Hier ist ein langer Artikel, die Sie durch den ganzen Prozess führen wird:

https://www.codeproject.com/Tips/580043/How-to-make-a-multi-language-application-in-Csharp

+0

Es ist keine mehrsprachige Anwendung. Das ist nur, um den richtigen Bericht für den Benutzer auszuwählen (der Berichtsviewer befindet sich in dem Formular). – Jocelyn

+0

Grundsätzlich sind FormEng und FormGer die gleiche Form mit unterschiedlicher Sprache? – NicoRiff

+0

Eigentlich habe ich zwei Formen. Diffent Name eine Form mit der englischen .rdlc und eine mit Deutsch. Aber ich kann ein Formular verwenden, wenn es möglich ist, verschiedene .rdlc auf einem Formular zu wählen – Jocelyn

Verwandte Themen