C# 数字猜谜游戏windows窗体

C# 数字猜谜游戏windows窗体,c#,C#,我正在用C#做一个数字猜测游戏,代码应该是计算玩家的猜测,然后将数字添加到文本框中 但我真的不知道如何在我的代码中实现它 我只是需要关于代码文本框部分的帮助 猜测应该出现在tbxMinaResultat public partial class Form1 : Form { Random rnd = new Random(); int datornsTal; int guesses; int max; public Form1() {

我正在用C#做一个数字猜测游戏,代码应该是计算玩家的猜测,然后将数字添加到文本框中

但我真的不知道如何在我的代码中实现它

我只是需要关于代码文本框部分的帮助

猜测应该出现在
tbxMinaResultat

public partial class Form1 : Form    
{
    Random rnd = new Random();
    int datornsTal;
    int guesses;
    int max;
    public Form1()
    {


        InitializeComponent();
        lbxStörstaTalet.Items.Add(10);
        lbxStörstaTalet.Items.Add(20);


    }

    private void BtnSpelaIgen_Click(object sender, EventArgs e)
    {
        gbxSpeldata.Enabled = true;
        gbxSpelet.Enabled = false;
    }

    private void LbxStörstaTalet_SelectedIndexChanged(object sender, EventArgs e)
    {

    }

    private void TbxMinaResultat_TextChanged(object sender, EventArgs e)
    {
        int guesses;
        tbxMinaResultat.Text = ToString(guesses);

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }


    private void BtnStartaSpelet_Click(object sender, EventArgs e)
    {
        int max = int.Parse(lbxStörstaTalet.SelectedItem.ToString());
        datornsTal = rnd.Next(0, max);

        gbxSpeldata.Enabled = false;
        gbxSpelet.Enabled = true;
        guesses = 0;
    }

    private void BtnGissa_Click(object sender, EventArgs e)
    {
        int guess = int.Parse(tbxGissa.Text);

        if (guess > datornsTal)
        {
            lblResultat.Text = "Gissa lägre";
            guesses++;
        }

        else if (guess < datornsTal)
        {
            lblResultat.Text = "Gissa Högre!";
            guesses++;
        }

        else if (guess == datornsTal)
        {
            lblResultat.Text = "Bra jobbat!";
            guesses++;
        } 
    }
}
公共部分类表单1:表单
{
随机rnd=新随机();
int datornsTal;
智力猜测;
int max;
公共表格1()
{
初始化组件();
lbxStörstaTalet.项目.添加(10);
lbxStörstaTalet.项目.添加(20);
}
私有void BtnSpelaIgen\u单击(对象发送方,事件参数e)
{
gbxSpeldata.Enabled=true;
gbxSpelet.Enabled=false;
}
私有void LbxStörstaTalet_SelectedIndexChanged(对象发送方,事件参数e)
{
}
私有void TbxMinaResultat_TextChanged(对象发送方,事件参数e)
{
智力猜测;
tbxMinaResultat.Text=ToString(猜测);
}
私有void Form1\u加载(对象发送方、事件参数e)
{
}
私有void BtnStartaSpelet_单击(对象发送者,事件参数e)
{
int max=int.Parse(lbxStörstaTalet.SelectedItem.ToString());
datornsTal=rnd.Next(0,最大值);
gbxSpeldata.Enabled=false;
gbxSpelet.Enabled=true;
猜测=0;
}
私有void BtnGissa_单击(对象发送者,事件参数e)
{
int guess=int.Parse(tbxGissa.Text);
如果(猜测>数据总计)
{
lblResultat.Text=“Gissa lägre”;
猜测++;
}
否则,如果(猜测
BtnGissa\u的末尾,单击
将猜测放到文本框中:

   ...
    //existing code
    else if (guess == datornsTal)
    {
        lblResultat.Text = "Bra jobbat!";
        guesses++;
    } 

    //add this line
    tbxMinaResultat.Text = guesses.ToString();
}
这里有几个学习点:

  • guesss
    是一个int。
    tbxMinaResultat.Text
    是一个字符串。如果不先将int转换为字符串,则无法将int分配给字符串
  • 有几种方法可以将整数转换为字符串;调用ToString可能是最简单的方法,它可以使用可选的格式化指令
  • 当您以编程方式更改文本框的Text属性中的字符串时,文本框中显示的值很快就会更改—我说很快,因为事件处理程序代码必须完成,并让处理按钮单击的框架线程返回到其更新UI的常规工作。如果您在设置文本后立即启动了一个需要10秒钟才能完成的操作,则您的应用程序将显示为挂起10秒钟,然后文本框将显示新值。请始终注意这一点,不要将运行事件处理程序代码的线程占用太长时间。保持应用程序响应性的方法超出了您目前学习的范围,但请记住这一点

我强烈建议您从tbxMinaResultat.TextChanged中删除事件处理程序:

  • 在表单设计器中,单击tbxMinaResultat文本框
  • 单击属性网格中的闪电图标
  • 删除TextChanged条目
  • 从代码中删除
    TbxMinaResultat\u TextChanged
    方法
当此文本框中的文本更改时,无需响应引发的事件-您希望更改文本,而不是响应其他更改文本的事件(这就是TextChanged的目的)