在文本框中显示字符串变量

时间:2013-12-07 23:16:21

标签: c# winforms

我目前正在做一个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];
}   

如果您对我的代码有任何疑问,我会对其进行编辑,以便您更容易理解/帮助我。

2 个答案:

答案 0 :(得分: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;
   }
}

答案 1 :(得分: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;
        }
    }
}