-2

私はこのようなものを使用しようとしています:

for (int i = 0; i < 40; i++)
{
    string x + i = TextBox + i.Text;
}

これに対する解決策はありますか?iの配列があるかのようにインデックスとして使用したいTextBox。このようなテキストボックスの Text プロパティをどのように達成できますか?

たとえば、x1、x2、x3、x4... という名前の文字列と x1 = TextBox1.Text の値を作成したいと考えています。でもできなかった :(

TextBox1,2,3...40 があり、それらのテキスト値を新しい文字列または文字列リスト ex に渡したいだけです。x1 = TextBox1.Text、x2 = TextBox2.Text のように; ..... :(

4

2 に答える 2

1

Textのコレクションからプロパティを取得しようとしていますTextBox- ところで、取得方法を示していません。の配列さえ持っていない可能性がありますTextBox

その場合は、次のようなコードを使用します (SomeCodeToGetTextBoxArray()自分で定義する必要があることに注意してください)。

TextBox[] myTextBoxes = SomeCodeToGetTextBoxArray();
var arrayLength = myTextBoxes.Length;
String[] x = new String[arrayLength];
for (int i = 0; i < arrayLength; i++)
{
    x[i] = myTextBoxes[i].Text;
}
于 2012-04-06T13:35:55.930 に答える
1

あなたがしようとしているのは、実行時に生成する文字列名によって、ローカル変数、フィールド、またはプロパティへの参照を持つことです。必要なことを行う唯一の方法は、リフレクションを使用することです。

変数がローカル スコープか、フィールド メンバーか、プロパティ メンバーかによって、これを行う方法は異なります。

反射 - LocalVariableInfo- FieldInfo-PropertyInfo


それがあなたの質問への答えですが、おそらく配列(またはList<T>)を使用してインデックスを使用する方が良いことに注意してください。ただし、(小さなスニペットだけでなく) 何をしようとしているのかを完全に知らずに知ることは本当に不可能です。ただし、配列 (またはList<T>) の方が正しい解決策である可能性が高くなります。

于 2012-04-06T13:37:08.370 に答える