为什么此代码不在文本框中显示输出?

时间:2017-11-01 04:16:16

标签: c#

我从C#开始。当我运行以下代码并单击生成按钮时,输出不会出现在文本框中。为什么是这样?我正在调用函数palendrome而不是更新文本框。我究竟做错了什么?我错过了什么吗?我需要解决什么问题。我没有看到错误。请帮忙。 :(

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

namespace PalendromeChecker
{


public partial class Form1 : Form
{
    int num;
    int count;
    static int result;
    int setPalendromeValue;
    int copyCount;


    public Form1()

    {
        InitializeComponent();
    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {
        count = Int32.Parse(textBox2.Text);
        copyCount = count;

        if (!int.TryParse(textBox2.Text, out count))
        {
            label4.Visible = true;
            label4.Text = "Please enter a positive number within the range.";
        }
        else if (count < 0 || count > 100)
        {
            label4.Visible = true;
            label4.Text = "Please enter a positive number within the range.";
        }

    }

    public static int palendrome(int num)
    {
        int temp = num; ;
        int r;
        int rv = 0;
        while (num > 0)
        {
            r = num % 10;
            rv = rv * 10 + r;
            num /= 10;

        }
        if (rv == temp)
        {
            result = temp;
            return temp;

        }
        else
        {
            return 0;
        }

    }



    private void textBox3_TextChanged(object sender, EventArgs e)
    {
        while (copyCount != 0)
        {
            string resultInString = result.ToString();
            textBox3.Text = resultInString;
            textBox3.Visible = true;
        }
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        num = Int32.Parse(textBox1.Text);
        //MessageBox.Show(this.textBox1.Text);



        if (!int.TryParse(textBox1.Text, out num))
        {
            //MessageBox.Show("This is a number only field");
            //return;
            label4.Visible = true;
            label4.Text = "Please enter a positive number within the range.";

        }
        else if (num < 0 || num > 1000000000)
        {
            // MessageBox.Show("Invalid Input needs to be between 0 and 1,000,000,000");
            label4.Visible = true;
            label4.Text = "Please enter a positive number within the range.";
        }


    }

    private void label2_Click(object sender, EventArgs e)
    {

    }

    private void label4_Click(object sender, EventArgs e)
    {
        label4.Visible = false;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int palendromeValue;

        while (count != 0)
        {
            palendromeValue = palendrome(num);
            count--;


        }

    }

}

}

2 个答案:

答案 0 :(得分:0)

它没有在文本框上生成任何输入,因为您的函数palendrome无法在textbox1到textbox3的任何输出上生成。

试试这个:

textBox1.Text = "output"; //Whatever output you want.

答案 1 :(得分:0)

如果您想在textBox3中显示结果以更新它的代码text属性应该在按钮点击处理程序内,而不是在文本更改处理程序中。

同样while (count != 0)while (copyCount != 0)就像无限循环(差不多)。他们会使你的表格没有反应。你需要避免这些。