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 フレームワーク以降を使用している場合は、 IsNullOrWhiteSpaceTextBoxで文字列または空の場合を検証できます。

    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");
    }

編集:TextBox OPが値を配列に保存したいことに気付きました

        var toArray = textBox1.Text.Trim().ToArray();
        name = toArray.ToArray();
于 2013-01-11T17:06:03.430 に答える
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];

長さ20のstring[]を保管する必要はありません。string

于 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 に答える
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 に答える