0

我是 C# 新手。我一直在尝试将输入到文本框中的值,在 Windows 窗体上,然后将它们保存在数组中。如果输入数据大于名称的大小,我试图然后显示一条消息。

例如,一个人在文本框中输入他们的名字。该数组的大小可能为[20]. 因此,如果名称超过 20 个字符,则会显示警告。

我有这个工作但没有使用数组来检查输入。

       string[] name = new string[20];
       public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length <= 0)
            {
                MessageBox.Show("empty");
            }
            else if (textBox1.Text.Length > 20)
            {
                MessageBox.Show("Too many letters");
            }
            else
            {

            }
        }
4

5 回答 5

3

如果您使用的是Net 3.5 框架或更高版本,则可以使用IsNullOrWhiteSpace验证TextBoxif 是否包含字符串或为空

    char[] name;

    private void button2_Click(object sender, EventArgs e)
    {
        int countChar = textBox1.Text.Trim().Count();

        if (string.IsNullOrWhiteSpace(textBox1.Text)) //if (countChar == 0)
        {
            MessageBox.Show("empty");
            return;
        }

        if (countChar > 20)
        {
            MessageBox.Show("You have entered " + countChar.ToString() + " letters, Too many letters");
            return;
        }

        MessageBox.Show("Success");
    }

编辑:我意识到 OP 想要将TextBox值存储到数组

        var toArray = textBox1.Text.Trim().ToArray();
        name = toArray.ToArray();
于 2013-01-11T17:06:03.430 回答
0

做这个:

    // Global string list
    List<string> inputList = new List<string>();

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (textBox1.Text.Length <= 0)
        {
            MessageBox.Show("empty");
        }
        else if (textBox1.Text.Length > 20)
        {
            MessageBox.Show("Too many letters");
        }
        else
        {
            // Add to list if less than 20 but greater than 0
            inputList.Add(textBox1.Text);
        }
    }
于 2013-01-11T17:11:25.780 回答
0

name将您的数组更改为char[]而不是string[]. 你在这里说的是你有一个字符串数组;比如 20 个全名而不是 20 个字符的名字。

在您的 if 语句中,您可以使用数组和文本框来满足您的条件

else if (textBox1.Text.Length > name.Length)
{
    MessageBox.Show("Too many letters");
}

这还有很多其他的问题,可以采取不同的方法,但为了专注于您的问题,我已将所有其他不相关的信息排除在此答案之外。

于 2013-01-11T17:08:26.043 回答
0

但没有使用数组来检查输入。

它在array内部使用。Stringchar[]并且String.Length实际上是 Char 数组的长度。


string[] name = new string[20];

您不需要string[]存储string长度为 20 的 a。

于 2013-01-11T17:03:15.017 回答
0

对于此任务,更好地使用列表:

List<String> list_string=new List<String>();

添加项目您需要:

list_string.Add("My String");

列表是动态集合,因此您永远不会超出范围。

使用 String 类时的其他方式。

字符串是数组的字符,它是动态对象,所以你永远不会超出范围。

于 2013-01-11T17:03:37.223 回答