【问题标题】:I want to create 5 random numbers between 2 numbers and display in my textbox我想在 2 个数字之间创建 5 个随机数并显示在我的文本框中
【发布时间】:2012-10-14 21:16:21
【问题描述】:

我刚在大学学习 C#,似乎很难将这个随机数放入文本框中。在此之前我还没有学过一门语言,如果这是一个简单的问题,我深表歉意。

我想在用户指定的两个不同数字之间创建 5 个随机数。然后将生成的 5 个数字打印到文本框中以显示它们。

private void button1_Click(object sender, EventArgs e) {

        int firstnum = Int32.Parse(txtboxnum.Text);
        int secondnum = Int32.Parse(txtboxnum2.Text);


        Random random = new Random();
        int randomNumber = random.Next(firstnum, secondnum);

        Int32 loop = 0;
        do
        {
            loop++;
        }
        while (loop > 5);

        string myString = randomNumber.ToString();

       string  txtboxanswer = myString;

我会非常感谢任何我出错的建议。因为我似乎无法让答案出现在我的文本框中。我知道我一定很近。我希望:)

提前感谢所有帮助。

【问题讨论】:

  • 您需要一次将所有 5 个值放在同一个文本框中?
  • 这似乎是作业,也许它应该有那个标签?

标签: c#


【解决方案1】:

顺便说一句,我就是这样做的

        int firstnum = 0;
        int secondnum = 1;
        Random random = new Random();

        int[] randomnums = new int[5];

        for (int i = 0; i < randomnums.Length; i++)
        {
            randomnums[i] = random.Next(firstnum, secondnum);
        }

然后你可以做类似的事情

string myString = randomnums[1].ToString() 

获取特定数字的字符串表示形式。

【讨论】:

    【解决方案2】:

    你已经够近了。只需对您的代码进行最少的编辑,它就应该是这样的

    int firstnum = Int32.Parse(txtboxnum.Text);
        int secondnum = Int32.Parse(txtboxnum2.Text);
    
    
        Random random = new Random();
    
    
        Int32 loop = 0;
        do
        {
           int randomNumber = random.Next(firstnum, secondnum);
           string myString = randomNumber.ToString();
           TextBox t= new TextBox();
           t.Text=myString; 
           t.Left=0;t.Top=loop * 20;
           this.Controls.Add(t);
    
           loop++;
        }
        while (loop < 5);
    

    有关动态添加控件的更多信息check this

    【讨论】:

    • 应该是while(loop
    • 另外你应该把生成新随机数的代码放在循环里面。每次迭代都应该有新生成的随机数。
    【解决方案3】:

    简单地说,您没有将TextBoxText 属性设置为结果。

    txtBoxName.Text= myString
    

    【讨论】:

    • 字符串 txtboxanswer.Text = myString;这在 txtboxanswer.Text 下给了我一条红线我还缺少其他东西吗?
    • 知道了。在开始时取出字符串。谢谢
    • @user1735367 我假设你有一个名为 txtBoxName 的文本框
    【解决方案4】:

    您在正确的轨道上,我认为您唯一缺少的是将字符串分配给文本框。只需放置另一个文本框(比如说 answertxtbox),然后在循环末尾写下以下内容:

    answertxtbox.Text += txtboxanswer + ", ";
    

    【讨论】:

      【解决方案5】:

      试试这个:

      Random rand = new Random();
      for (int i = 0; i < 5; i++)
      {
          int a = rand.Next(Min, Max);
          textBox1.Text =  textBox1.Text + string.Format(" {0} ", a.ToString());
      }
      

      【讨论】:

      • 这里的for循环有什么用?您将在每次迭代后覆盖最后一个值。
      【解决方案6】:

      只是因为似乎每个人都在回答......

       int firstnum = Int32.Parse(txtboxnum.Text);
       int secondnum = Int32.Parse(txtboxnum2.Text);
       Random random = new Random();
      
       List<int> results = new List<int>();
       for (int i =0; i < 5; i++)
       {
           results.Add(random.Next(firstnum, secondnum));
       }
      
       answertxtbox.Text = String.Join(",", Array.ConvertAll<int, String>(results.ToArray(), Convert.ToString));
      

      注意:我实际上不会这样做,但它确实说明有很多很多方法可以解决同一个问题。

      【讨论】:

        猜你喜欢
        • 2017-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 2022-07-14
        • 2014-07-06
        相关资源
        最近更新 更多