在GUI程序中输出多个数字 - C#

时间:2016-10-10 21:37:11

标签: c# user-interface checkbox textbox

在一个项目上工作,我想我已经完成了大部分工作。问题是,虽然我可以得到输出,但它不是完整的输出。

基本上,目标是制作一个具有两个文本框的GUI,用户可以在其中输入1到50的数字(num1表示min,num2表示最大值),然后从四个不同的框中选择信息。第一个框显示素数,第二个是显示偶数,第三个是显示素数,第四个是显示在顶行用数字排列的乘法表,乘法结果下降。

我认为我有所有正确的方程式和循环,问题是我无法得到正确的输出。每当选择一个选项时,我只能得到一个数字。它在适当的范围内,但我需要显示范围内的所有数字。

这是我编码的内容(复选框4在开始时因为我现在无法将其从那个位置移动而不会弄乱程序,显然)。真的想弄清楚我错过了什么步骤。

public partial class Form1 : Form
{
    private bool isPrime;

    public Form1()
    {
        InitializeComponent();
    }

    private void checkBox4_CheckedChanged(object sender, EventArgs e)
    {
        int num1 = Convert.ToInt32(textBox1.Text);
        int num2 = Convert.ToInt32(textBox2.Text);

        for (int i = num1; i <= num2; i++)
        {
            for (int j = num1; j <= num2; j++)
            {
                int res = i * j;
                textBox3.Text = res.ToString();
            }

        }
    }

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {

        int num1 = Convert.ToInt32(textBox1.Text);
        int num2 = Convert.ToInt32(textBox2.Text);

        for (int i = num1; i <= num2; i++)
        {
            for (int j = num1; j <= num2; j++)
            {

                if (i != j && i % j == 0)
                {
                    isPrime = false;
                    break;
                }

            }
            if (isPrime)
            {
                textBox3.Text = i.ToString();
            }
            isPrime = true;
        }
    }

    private void checkBox2_CheckedChanged(object sender, EventArgs e)
    {
        int num1 = Convert.ToInt32(textBox1.Text);
        int num2 = Convert.ToInt32(textBox2.Text);

        for(int i = num1; i <= num2; i++)
        {
            if (i % 2 == 0)
            {
                textBox3.Text = i.ToString();
            }
        }
    }

    private void checkBox3_CheckedChanged(object sender, EventArgs e)
    {
        int num1 = Convert.ToInt32(textBox1.Text);
        int num2 = Convert.ToInt32(textBox2.Text);

        for (int j = num1; j <= num2; j++)
        {
            if (j % 2 != 0)
            {
                textBox3.Text = j.ToString();
            }
        }
    }

    private void textBox3_TextChanged(object sender, EventArgs e)
    {

    }
}

2 个答案:

答案 0 :(得分:0)

尝试将textBox3设置为多行

然后试试这个:

private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
    int num1 = Convert.ToInt32(textBox1.Text);
    int num2 = Convert.ToInt32(textBox2.Text);
    string result="";


    for (int i = num1; i <= num2; i++)
    {
        for (int j = num1; j <= num2; j++)
        {
            int res = i * j;
            result=string.format("{0}\n{1}",result,res.ToString());
        }

    }
    textBox3.Text=result;
}

答案 1 :(得分:0)

private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
    int num1 = Convert.ToInt32(textBox1.Text);
    int num2 = Convert.ToInt32(textBox2.Text);

    for (int i = num1; i <= num2; i++)
    {
        for (int j = num1; j <= num2; j++)
        {
            int res = i * j;
            textBox3.Text += res.ToString() + " ";
        }

    }
}