私はtextBox1
からtextBox26
までの26個のテキストボックスとボタンを持つ基本的なプログラムを持っています。このボタンは現在、各TextBoxに1
,x
または2
という値を与えています。また、配列または複数のif/elseステートメントを使わずに、TextBoxの値と最後の値より大きい13の値を持つ名前を持つTextBoxの値を比較したい。たとえば、textBox1
とtextBox14
を比較したいと思います。配列のないTextBox値の比較。 C#
Random r = new Random();
int ran;
int x;
int y;
private void button1_Click(object sender, EventArgs e)
{
foreach (Control b in this.Controls.OfType<TextBox>())
{
ran = r.Next(1, 4);
if (ran == 1)
{
b.Text = "1";
}
else if (ran == 2)
{
b.Text = "x";
}
else if (ran == 3)
{
b.Text = "2";
}
x = b.TabIndex;
y = x + 13;
var box = (TextBox)this.Controls.Find("textBox" + x.ToString());
var box1 = (TextBox)this.Controls.Find("textBox" + y.ToString());
box.Text = box1.Text;
}
}
これは、エラーメッセージが表示できます::私は現在、このコード持って
必要な仮パラメータに対応して与えられた引数はありませんがControl.ControlCollection.Find」の検索子供(ライン上の文字列、ブール値)」 :
var box = (TextBox)this.Controls.Find("textBox" + x.ToString());
var box1 = (TextBox)this.Controls.Find("textBox" + y.ToString());
ここで配列を使用しない理由は何ですか?それはリファクタリングが良くなるのでより良いでしょう(あなたがテキストボックスをより意味のある名前にすることを決めたと想像してください)。 – juharr
これは[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のようです。これらの比較の最終目標は何ですか? –