0

私が行っているループに対して値を設定したいテキストボックスとコンボボックスの配列があります。preinput1 と postinput1 はテキストボックスですが、preinput5 と postinput5 はコンボボックスです。コンボボックスを textbox として参照しようとしているエラー: "TextBox tb" 。

    var StringInput = new object[] { preInput1, preInput5, postInput1, postInput5};
    int stringCount1 = 0;
    int toto = (ArrayCount + StringInput.Length);

    foreach (TextBox tb in StringInput)
    {
      tb.Text = Convert.ToString(energyCalculation.Cells[place[xCSV]].Value);
      xCSV++;
      //stringCount1++;
      ArrayCount++;
    }

1つずつ処理するために分割することは避けたいです。TextBox の代わりに他に何が書けるか、またはもっと良い方法がありますか。

乾杯、

4

2 に答える 2

2

次のことを試してください。

var StringInput = new Control[] { preInput1, preInput5, postInput1, postInput5};
int stringCount1 = 0;
int toto = (ArrayCount + StringInput.Length);

foreach (var c in StringInput)
{
  c.Text = Convert.ToString(energyCalculation.Cells[place[xCSV]].Value);
  xCSV++;
  //stringCount1++;
  ArrayCount++;
}
于 2013-03-23T07:31:27.220 に答える
0

これを試して:

foreach (object control in StringInput)
{
  var value = Convert.ToString(energyCalculation.Cells[place[xCSV]].Value);

  var textBox = control as TextBox;
  if (textBox != null)
  {
    textBox.Text = value;
  }
  else
  {
    var comboBox = control as ComboBox;
    if (comboBox != null)
    {
      comboBox.Text = value;
    }
  }

  xCSV++;
  //stringCount1++;
  ArrayCount++;
}
于 2013-03-23T07:34:53.327 に答える