2013-12-07 5 views
0

В настоящее время я делаю проект simili-HangMan. Поскольку я просматривал много других проектов здесь, я не нашел то, что искал точно.Показать строковую переменную в текстовом поле

Примечания:
* Переменная motRechercher - это рандомизированное слово.
* Его можно использовать везде - я сделал набор для него.

МОЙ ВОПРОС: Я хочу отобразить строку в текстовом поле, которое является случайным словом, выбранным из списка, как это сделать?

Вот мой код для текстового поля:

private void txtMot_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    for (int i = 0; i <= motRechercher.Length; i++) 
    { 
     StringBuilder sb = new StringBuilder(motRechercher); 
     sb[i] = '_'; 
     string sba = sb.ToString(); 
     txtMot.Text=sba; 
    } 
} 

Если слово для примера: Кат. Он должен показывать: _ _ _

Вот мой код для случайного выбора слов (работает) - это в основном, чтобы дать представление:

private void btnDemarrer_Click(object sender, RoutedEventArgs e) 
{ 
    Random rdn = new Random(); 
    int nbreAleatoire = rdn.Next(0, 27); 
    motRechercher = lesMots[nbreAleatoire]; 
} 

Если у вас есть какие-либо вопросы по поводу моего кода я буду править это облегчит вам понимание/помощь.

+3

Дон Не создавайте StringBuilder в цикле. Не создавайте новый экземпляр Random в событии _Click. –

+0

Хорошо, конечно. Как мне исправить это г-н Л. Б.? Дайте идеи, чтобы помочь мне конкретизировать проект. – MammouthQc

+1

Что вы думаете? –

ответ

1

вместо

private void txtMot_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    for (int i = 0; i <= motRechercher.Length; i++) 
    { 
     StringBuilder sb = new StringBuilder(motRechercher); 
     sb[i] = '_'; 
     string sba = sb.ToString(); 
     txtMot.Text=sba; 
    } 

} 

добавить еще одну кнопку для следующего случайного ни в заселить в текстовое поле.

внутри кнопки мыши сделать это, которая будет проверять длину и получить данные для вас:

private void btnNext_Click(object sender, RoutedEventArgs e) 
{ 
    if(motRechercher.Length > 0) 
    { 
    String str = new String('_', motRechercher.Length); 
    txtMot.Text = str; 
    } 
} 
+0

Я протестировал этот тент - это вызвало сбой моей программы. Хотя, я думаю, это связано с полосой (sb [i] = '_';). Я поместил его в комментарии, и он прекратил сбой ... Как вы, ребята, думаете, что я могу это исправить? Точкой строки является изменение букв от слова (motRechercher <- строковая переменная) до «_» ... Ty для awnser tho! – MammouthQc

1

Если я правильно понял вопрос, то это может быть то, что вы после:

bool changing = false; // variable in class-scope 

private void txtMot_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    if (changing == false) 
    { 
     try 
     { 
      changing = true; 
      String str = new String('_', motRechercher.Length); 
      txtMot.Text = str; 
     } 
     finally 
     { 
      changing = false; 
     } 
    } 
} 
+0

Я думаю, что ваша вещь должна работать, но она, похоже, не вступает в силу. Что я имею в виду здесь: txtMot.Text = str; не отображается в текстовом поле txtMot. Спасибо за сообщение, он все еще удалил несколько строк кода! – MammouthQc

Смежные вопросы