2016-04-20 8 views
-2

ich ein Spiel machen wollen, dass Sie das Wort, das Sie Ihren Freund hier zu erraten Form2 wollen schreiben:Position von Textfeld

image

Dann Form3 wird

image zeigen

Mein Problem ist, wenn ich auf button A ich will ein oder einige t klicken extbox zeigt sich dynamisch in der rechten Position. Zum Beispiel meines Wort von Form2 ist BANANEN, wenn ich eine Schaltfläche klicken, um es wie dieser AAA zeigen soll ich eine fuction in Form2 verwenden wie diese

public void FindString(char Someword) 
{ 

    int i = textBox1.TextLength; 
    for (int j = 0; j < i; j++) 
    { 
     if (Someword == textBox1.Text[j]) 
     { 
         //what to do here 

     } 
    } 
} 

Dann kann ich eine Werte von j verwenden, um Bestimmen Sie die Position des Wortes in Form3 (kann Multi-Position nicht wie das Beispiel behandeln).

+0

Können Sie den vollständigen Quellcode hier veröffentlichen? –

Antwort

0

Vielleicht können Sie so etwas wie dies versuchen:

//New list to store pressed chars 
List<char> usedChars = new List<char>(); 

public void FindString (char Somechar) 
{ 
    //New StringBuilder to build final string 
    StringBuilder sbWordIs = new StringBuilder(); 

    int i = textBox1.TextLength; 
    for (int j = 0; j < i; j++) 
    { 
     if (Somechar == textBox1.Text[j]) 
     { 
      //Store new correct char 
      if (!usedChars.Contains(Somechar)) usedChars.Add (Somechar); 
     } 

     //Check whether each char in word was already pressed or not 
     if (usedChars.Contains(textBox1.Text[j])) sbWordIs.Append(textBox1.Text[j]); 
     else sbWordIs.Append ("_"); //If not, show an underscore 
    } 

    //Say yor new textbox is named "textBox2" 
    textBox2.Text = sbWordIs.ToString(); 
} 

(ungetestet)

1

Für jedes Mal, wenn die Zeichen auf j übereinstimmt Sie die Zeichen in einen String anhängen. Fügen Sie für jeden Konflikt ein Leerzeichen hinzu. Nachdem Sie die Zeichenfolge geladen haben, können Sie die Textbox löschen und aktualisieren. Wenn Sie Eingaben mit Phrasen aus 'form2' verarbeiten möchten, können Sie nach Leerzeichen suchen, bevor Sie sie an die Textbox senden.

 List<char> guessWord = new List<char>(25); 
     int i = textBox1.TextLength; 
     for (int j = 0; j < i; j++) 
     { 
      if (input == passWord[j]) 
      { 
       guessWord.Insert(j, passWord[j]); //set j index of an array or list to the corresponding character 
      } 
      else 
      { 
       guessWord.Insert(j,' '); // or you can use an underscore _ to indicate that there should have been a letter there. You could also add a line here to create a list or array containing wrong guesses and display those 
      } 
     } 
     label1.Text = ""; //clear prior guesses 

     foreach(char c in guessWord) 
     { 
      label1.Text += c; 
     } 

Dies hängt natürlich davon ab, wie Sie Ihren Text anzeigen.

0
List<char>  guessWord = new List<char>(25); 
     int i = textBox1.TextLength; 
for (int j = 0; j < i; j++) 
    { 
     if (input == passWord[j]) 
     { 
      guessWord.Insert(j, passWord[j]); //set j index of an array or  list to the corresponding character 
     } 
      else 
    { 
      guessWord.Insert(j,' '); // or you can use an underscore _ to indicate that there should have been a letter there. You could also add a line here to create a list or array containing wrong guesses and display those 
     } 
    } 
     label1.Text = ""; //clear prior guesses 

     foreach(char c in guessWord) 
    { 
     label1.Text += c; 
    }