-1

私はC#とプログラミング全般に本当に慣れていないので、私の質問はあなたの意見ではばかげているかもしれませんが、ここにあります.

7 つのテキスト ボックスを含むフォームを作成しました。これらのテキスト ボックスからテキストを収集してリストに追加したいと考えています。しかし、「型」ですが、「変数」のように使用されているというエラーが表示System.Windows.Forms.TextBoxされます。どうすればよいですか?

for (int i = 1; i < 8; i++)
{
    if (TextBox[i].Text == "")
    {
        days.Add("Restday");
    }
    else
    {
        days.Add(TextBox[i].Text);
    }   
}
4

4 に答える 4

2

TextBoxという名前の配列がないため、エラーが発生したと思います。以下を試すことができます:

List<strig> days = this.Controls.OfType<TextBox>
                                .Select(r=> string.IsNullOrWhiteSpace(r.Text) 
                                            ? "Restday" : r.Text)
                                .ToList();

しかし、上記はフォームに直接追加されたテキストボックスを提供します。これらのテキストボックスが他のコントロール内にある場合は、再帰的に探すことができます

于 2013-05-27T18:13:22.633 に答える
0

フォーム エディターに移動し、テキスト ボックスの 1 つを選択します。プロパティウィンドウを見つけます。表示されていない場合は、[表示] -> [プロパティ ウィンドウ] をクリックします。

そこにあるプロパティの 1 つは、テキスト ボックス コントロールの名前になります。それを使用して、次のようにテキスト値にアクセスします。

days.Add(txtMyTextboxName.Text);

テキストボックスを反復処理する必要がある場合は、次のようにできます。

foreach(var Textbox in this.Controls.OfType<TextBox>())
{
    if (Textbox.Text == "")
    {
        days.Add("Restday");
    }
    else
    {
        days.Add(Textbox.Text);
    }   
}

ただし、これは非常に非標準的なアプローチであり、推奨されないことに注意してください。

于 2013-05-27T18:16:17.863 に答える