Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#在同一foreach循环中设置combobox和texbox的值_C#_Arrays_Combobox_Textbox_Foreach - Fatal编程技术网

c#在同一foreach循环中设置combobox和texbox的值

c#在同一foreach循环中设置combobox和texbox的值,c#,arrays,combobox,textbox,foreach,C#,Arrays,Combobox,Textbox,Foreach,我有一个文本框和组合框数组,我想根据循环设置它们的值。preinput1和postinput1是文本框,而preinput5和postinput5是组合框。尝试将组合框引用为textbox时出错:“textbox tb” 我不想为了一个接一个的解决问题而把它拆开。我还能写什么来代替文本框,或者有更好的方法吗 干杯,尝试以下方法: var StringInput = new Control[] { preInput1, preInput5, postInput1, postInput5}; int

我有一个文本框和组合框数组,我想根据循环设置它们的值。preinput1和postinput1是文本框,而preinput5和postinput5是组合框。尝试将组合框引用为textbox时出错:“textbox tb”

我不想为了一个接一个的解决问题而把它拆开。我还能写什么来代替文本框,或者有更好的方法吗

干杯,

尝试以下方法:

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++;
}
试试这个:

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++;
}

完美的实际上,我只是将c的声明从'var c'更改为'Control c',并且它也起了作用@帕特:那很好。将数组类型更改为
Control[]
而不是
object[]
的原因是为了停止添加任何其他类型的非“Control”类型的对象,从而为您造成同样的问题。
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++;
}