为什么使用此代码时什么都没显示?

时间:2020-01-25 00:32:38

标签: c# winforms

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 WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }
        private void button1_Click(object sender, EventArgs e)
        {
            Random r = new Random();
            //
            string filesizer;
            //
            filesizer = r.Next(0, 100).ToString();


            string yourfile = textBox1.Text;
            string myfile = filesizer;

            if (String.IsNullOrEmpty(textBox1.Text))
            {
                MessageBox.Show("Please Enter Your File Size");
            }


            if (yourfile.Length < myfile.Length)

            {
                MessageBox.Show("Ha ha your File smol");
                this.Close();
            }
            else
            {
                MessageBox.Show("You have big File");
            }


        }
    }
}

当我运行这段代码时,什么都没有发生。没有错误,没有消息框,什么也没有。即使当我有空的时候,它也什么也没说。我在这里弄乱了吗?我放在表格上的东西坏了吗?我知道代码不干净而且很难阅读,但这就是事实。不好修复它。

1 个答案:

答案 0 :(得分:1)

由于您说“什么也没有发生。没有错误,没有消息框,什么也没有。” ,那么很可能您没有将按钮的Click事件连接到事件处理程序。为此,请打开表单设计器,选择按钮,然后在“属性”窗口中单击闪电图标(以查看事件),然后为Click事件选择事件处理程序:

enter image description here

或者,您可以在代码中执行此操作:

private void Form1_Load(object sender, EventArgs e)
{
    this.button1.Click += button1_Click;
}

关于代码本身,也许更好的方法是使用数字类型(例如intdouble而不是string来比较数字值。

执行此操作的一种方法是使用int.TryParse从文本框中获取整数值。此方法接受一个字符串,并具有一个out参数,如果成功,它将设置为转换后的值。它还返回表示成功的bool,因此我们可以将其用作if条件:

// Random only needs to be created once at the class level
private Random r = new Random();

private void button1_Click(object sender, EventArgs e)
{
    // Do our validation first and exit early if there's invalid input
    // Use int.TryParse to determine if the value is a number (and get the converted value)
    int userFileSize;
    if (!int.TryParse(textBox1.Text, out userFileSize))
    {
        MessageBox.Show("Please Enter A Numeric File Size");
        return;
    }

    // Get a random file size
    int randomFileSize = r.Next(0, 100);

    if (userFileSize < randomFileSize)
    {
        MessageBox.Show("Ha ha your File smol. Mine is: " + randomFileSize);
        this.Close();
    }
    else
    {
        MessageBox.Show("You have big File! Mine is only: " + randomFileSize);
    }
}