【问题标题】:Returning a random number to a text box through a method call. Please advise通过方法调用将随机数返回到文本框。请指教
【发布时间】:2014-07-18 12:19:19
【问题描述】:

这是基于我正在尝试为其制作 GUI 的控制台程序。

请查看firstNumber_ClickArithmetic firstRandomNumber()

我有没有机会解释为什么它没有将随机数返回到文本框?

算术

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CAI_GUI
{
    class Arithmetic
    {
        public int firstNumber;
        public int secondNumber;

        public Arithmetic(int _firstNumber, int _secondnumber)
        {
            firstNumber = _firstNumber;
            secondNumber = _secondnumber;
        }

        public Arithmetic()
        {
        }

        public int firstRandomNumber()
        {
            Random rnd = new Random();
            firstNumber = rnd.Next(0, 9);
            return firstNumber;
        }

        public int secondRandomNumber()
        {
            Random rnd = new Random();
            secondNumber = rnd.Next(0, 9);
            return secondNumber;
        }

        public int FirstNumber
        {
            get
            {
                return firstNumber;
            }
            set
            {
                firstNumber = value;
            }
        }

        public int SecondNumber
        {
            get
            {
                return secondNumber;
            }
            set
            {
                secondNumber = value;
            }
        }
    }
}

Form4

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CAI_GUI
{
    public partial class Form4 : Form
    {
        Arithmetic A1 = new Arithmetic();

        public Form4()
        {
            InitializeComponent();
        }

        private void Form4_Load(object sender, EventArgs e)
        {
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            A1.secondRandomNumber();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Environment.Exit(0);
        }

        private void firstNumber_Click(object sender, EventArgs e)
        {
            int first = Convert.ToInt32(num1.Text);

            num1.Text = A1.firstRandomNumber().ToString();
        }
    }
}

【问题讨论】:

  • 您永远不会为文本框文本分配任何内容。 TextChanged是当文本框的值改变时调用的事件,而不是to改变文本的事件。
  • 这里有几个问题,你想解决哪一个?你遇到了什么错误?
  • 我收到输入错误;我正在尝试将随机数返回给 num1.text;你能告诉我如何在代码中纠正这个问题吗?
  • 我想知道 textbox_changed 的​​语法是什么;我现在可以使用生成按钮(感谢 LIUFA),但我希望它在表单启动时自动出现。

标签: c# webforms


【解决方案1】:

我认为它不起作用,因为int first = Convert.ToInt32(num1.Text); 行无法转换,试试这个。

private void firstNumber_Click(object sender, EventArgs e)
    {
        num1.Text = A1.firstRandomNumber().ToString();
    }

【讨论】:

  • Un-freakin-believeable... 这确实有效。如果我是把它放在文本框中,而不必点击生成;我假设我将该行放在 TextBox_Changed 中?
  • 如果没有按钮,我将如何做到这一点?如果我想在启动时将这些随机数放在 num1.Text 中怎么办?没有点击任何东西。
  • 效果很好,我发帖后才意识到这一点;我现在唯一剩下的问题是;生成的随机数相同,第一个和第二个随机数顺序相同...
猜你喜欢
  • 1970-01-01
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
相关资源
最近更新 更多