2017-03-06 1 views
0

Also mache ich einen Kurs in der Schule über eine Musikschule und eine Sache, die ich tun möchte, ist in der Lage, einen Lerncode (bestehend aus 6 Zeichen) aus 3 eingegebenen Werten zu erstellen. Also cbInstrument ist eine Combobox, cbLevel ist auch eine Combobox und rb10Lessons/rb20Lesoons sind Radiobuttons. Wenn der Code ausgeführt wird, möchte ich in der Lage sein, einen Unterrichtscode aus diesen Werten zu erstellen, wenn ich sie auswähle, damit der Unterrichtscode in einem Etikett derselben Form erscheint, in dem ich die Informationen auswähle.Wie erstellt man einen Code aus Comboboxen mit Teilstring in C# Visual Studio?

Zum Beispiel; Wenn ich in laufender Form für das Instrument bin, klicke ich auf "Cello", der Unterrichtskode wird als CEL angezeigt. Wenn ich danach Level als 'Note 1' anklicke, erscheint der Unterrichtskode als CELB. Und wenn ich 10 Unterrichtsstunden wähle, dann TuitionCode = CELB10.

Hier ist ein Beispiel für den Code:

private void Tuition_Click(object sender, EventArgs e) 
    { 
     string code = ""; 
     string codePart1 = code.Substring(0, 3); 
     string codePart2 = code.Substring(3, 1); 
     string codePart3 = code.Substring(4, 2); 

     if (cbInstrument.Text == "Cello") 
     { 
      codePart1 = "CEL"; 
     } 
     else if (cbInstrument.Text == "Clarinet") 
     { 
      codePart1 = "CLA"; 
     } 
     else if (cbInstrument.Text == "Double Bass") 
     { 
      codePart1 = "DBA"; 
     } 


     if ((cbLevel.Text == "None") || (cbLevel.Text == "Grade 1") || (cbLevel.Text == "Grade 2")) 
     { 
      codePart2 = "B"; 
     } 
     else if ((cbLevel.Text == "Grade 3") || (cbLevel.Text == "Grade 4") || (cbLevel.Text == "Grade 5")) 
     { 
      codePart2 = "I"; 
     } 

     if (rb10Lessons.Checked) 
     { 
      codePart3 = "10"; 
     } 
     else if (rb20Lessons.Checked) 
     { 
      codePart3 = "20"; 
     } 

     lblTuitionCode.Text = code; 
    } 
+0

Haben Sie versucht, diese 'codePart'-Variablen zu verketten? Beachten Sie auch: Ihr Teilstring auf einem "" "ist nicht gut. – crashmstr

Antwort

3

Sie die falsche Funktion ... Subtring eine Teilstrings in einem String zurück: zum Beispiel: "123456" .Substring (2,1) "zurückkehren wird "3"

Was Sie brauchen einfach die Zeichenfolge zu aggregieren ist:

code = string.Format("{0}{1}{2}", codePart1, codePart2, codePart3); 

, dass es

1

Der Rückgabewert von Substring ist eine eigene Zeichenfolge, kein Verweis auf einen Teil der Zeichenfolge, die an ihn übergeben wird.

C# 6 verfügt über eine Funktion String-Interpolation genannt, die wie folgt aussieht:

code = $"{codePart1}{codePart2}{codePart3}";

Sie auch String.Format(...) wenn Ihre VS-Version nicht unterstützt C# 6 Funktionen nutzen könnten.

+0

Schönes Feature! Unterstützt es IntelliSence und Refactoring? – Seb

+1

Ja, Sie können es sogar mit '@' für vorformatierte Strings kombinieren. – WereGoingOcean

Verwandte Themen