Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# 从字符串列表中的元素填充多个组合框_C#_.net_Combobox - Fatal编程技术网

C# 从字符串列表中的元素填充多个组合框

C# 从字符串列表中的元素填充多个组合框,c#,.net,combobox,C#,.net,Combobox,我有一个名为incroves.txt的文本文件中的输入曲线名称列表。.txt文件的内容如下: 18500*8500*Eval:c3*Eval:c2*Eval:c1*Final:DTS*Final:OBG*Final:PPG* 前两个数字是底部和顶部深度,其余的是曲线集名称和每个剩余组合框的曲线名称(1-6) 我已经编写了一个脚本来从这个.txt填充组合框,但是当我尝试将cmbBox转换为string,然后转换为整数时,收到一个错误 输入字符串的格式不正确) 你能帮忙吗 问题在于,您试图将整个对

我有一个名为incroves.txt的文本文件中的输入曲线名称列表。.txt文件的内容如下:

18500*8500*Eval:c3*Eval:c2*Eval:c1*Final:DTS*Final:OBG*Final:PPG*
前两个数字是底部和顶部深度,其余的是曲线集名称和每个剩余组合框的曲线名称(1-6)

我已经编写了一个脚本来从这个.txt填充组合框,但是当我尝试将
cmbBox
转换为
string
,然后转换为整数时,收到一个错误

输入字符串的格式不正确)


你能帮忙吗

问题在于,您试图将整个对象
组合框
转换为字符串,这只会导致类/类型的全名
组合框
加上项目计数:

“System.Windows.Controls.ComboBox项目。计数:0”

您也可以在调试器中看到这一点

我想在crvIn列表中为每个组合框分配一个元素

我想如果您想将每个值添加到不同的组合框中,您可以使用for循环并添加项。如果要使其可选择,则需要将其添加到项目中

首先,您需要根据查询创建一个列表。在末尾添加
ToList()

var combBoxes = this.Controls.OfType<ComboBox>()
                    .Where(x => x.Name.StartsWith("comboBox")).ToList();

for (int i = 0; i < combBoxes.Count; i++)
{
    combBoxes[i].Text = crvIn[i + 2];
}
var combbox=this.Controls.OfType()
.Where(x=>x.Name.StartsWith(“组合框”)).ToList();
对于(int i=0;i
因此,请使用断点并检查值
number
所包含的内容。它是一个长文本还是该文件中有多行?如果是这样的话,你可能想读所有行并单独拆分它们?另外,当您试图解析“number”时,它的值是多少?为什么要转换和替换它?=!这个数字的作用是什么?只有一行,我用*分隔符分割每个元素,以进行parse.convert和replace?我想我遇到的问题是,我试图同时运行两个循环:一个“foreach”用于每个组合框,另一个(将cmbBox转换为字符串,然后转换为整数)用于我的CrvIn list.combbox.Count中的每个元素,但这是我想采取的方向。@endlessforms我监督您使用的是
IEnumerable
。我编辑了我的帖子。您需要通过在控件查询的末尾添加
ToList
来创建一个
列表,以使其在更改的项目中工作。添加到combbox[i].Text=crvIn[i]后,此操作就成功了。谢谢大家!@好的,我跟着你的变化。仍然不明白为什么要使用
Text
属性。它只是为了展示吗?=!是的,仅用于展示。
cmbBox.Text = crvIn[i];
var combBoxes = this.Controls.OfType<ComboBox>()
                    .Where(x => x.Name.StartsWith("comboBox")).ToList();

for (int i = 0; i < combBoxes.Count; i++)
{
    combBoxes[i].Text = crvIn[i + 2];
}