获取并连接 CheckedBoxComboBox 中的所有选定项
Get and concatenate all the selected item in CheckedBoxComboBox
当我 CheckedBoxComboBox
中的 select 超过 1 个时,我遇到了问题。
我可以使用 CheckListBox
使用此代码来完成此操作。
objNPTBEL.workdayidlist = null;
for (int x = 0; x < checkedListBox1.CheckedItems.Count; x++)
{
if (x < checkedListBox1.CheckedItems.Count - 1)
objNPTBEL.workdayidlist += checkedListBox1.GetItemText(checkedListBox1.CheckedItems[x]) + ",";
else
objNPTBEL.workdayidlist += checkedListBox1.GetItemText(checkedListBox1.CheckedItems[x]);
}
Ex. Output, "415073,415072"
但是我想要一个ComboBox UI
。我找到了这个自定义工具 CheckBoxComboBox
.
CheckBox ComboBox Extending the ComboBox Class and Its Items
这是我当前的代码,用于获取 CheckedBoxComboBox
中的所有 selected 项目。
int x = 0;
objNPTBEL.workdayidlist = null;
for (int i = 0; i < checkBoxComboBox1.CheckBoxItems.Count; i++)
{
if (checkBoxComboBox1.CheckBoxItems[i].CheckState == CheckState.Checked)
{
x = x + 1;
for (int j = 0; j < x; j++)
{
if (j < x - 1)
{
objNPTBEL.workdayidlist += checkBoxComboBox1.GetItemText(checkBoxComboBox1.CheckBoxItems[i].Text) + ",";
}
else
{
objNPTBEL.workdayidlist += checkBoxComboBox1.GetItemText(checkBoxComboBox1.CheckBoxItems[i].Text);
}
}
}
}
当我 select 超过 1 项时,我的输出如下所示。
ex. Output 415073415072,415072
不要太复杂,只需每次添加逗号,然后trim在最后去掉它..
我不明白为什么有一个内部 for 循环,但我把它留了下来,因为你比我更了解你的项目。它会导致输出中出现重复项,但您并未指出这是一个问题 - 我只是在解决数字 运行 在一起且没有逗号的问题。如果你也不想要重复的项目,你也可以删除内部的 for 循环 - 基本上就像你第一次做的那样,但是用一个 if
来查看项目是否被选中
for (int j = 0; j < x; j++)
{
objNPTBEL.workdayidlist += checkBoxComboBox1.GetItemText(checkBoxComboBox1.CheckBoxItems[i].Text) + ",";
}
...
objNPTBEL.workdayidlist = objNPTBEL.workdayidlist.TrimEnd(',');
可能值得指出的是,制作 objNPTBEL.workdayidlist
类似 List<int>
而不是 csv
可能更有用
当我 CheckedBoxComboBox
中的 select 超过 1 个时,我遇到了问题。
我可以使用 CheckListBox
使用此代码来完成此操作。
objNPTBEL.workdayidlist = null;
for (int x = 0; x < checkedListBox1.CheckedItems.Count; x++)
{
if (x < checkedListBox1.CheckedItems.Count - 1)
objNPTBEL.workdayidlist += checkedListBox1.GetItemText(checkedListBox1.CheckedItems[x]) + ",";
else
objNPTBEL.workdayidlist += checkedListBox1.GetItemText(checkedListBox1.CheckedItems[x]);
}
Ex. Output, "415073,415072"
但是我想要一个ComboBox UI
。我找到了这个自定义工具 CheckBoxComboBox
.
CheckBox ComboBox Extending the ComboBox Class and Its Items
这是我当前的代码,用于获取 CheckedBoxComboBox
中的所有 selected 项目。
int x = 0;
objNPTBEL.workdayidlist = null;
for (int i = 0; i < checkBoxComboBox1.CheckBoxItems.Count; i++)
{
if (checkBoxComboBox1.CheckBoxItems[i].CheckState == CheckState.Checked)
{
x = x + 1;
for (int j = 0; j < x; j++)
{
if (j < x - 1)
{
objNPTBEL.workdayidlist += checkBoxComboBox1.GetItemText(checkBoxComboBox1.CheckBoxItems[i].Text) + ",";
}
else
{
objNPTBEL.workdayidlist += checkBoxComboBox1.GetItemText(checkBoxComboBox1.CheckBoxItems[i].Text);
}
}
}
}
当我 select 超过 1 项时,我的输出如下所示。
ex. Output 415073415072,415072
不要太复杂,只需每次添加逗号,然后trim在最后去掉它..
我不明白为什么有一个内部 for 循环,但我把它留了下来,因为你比我更了解你的项目。它会导致输出中出现重复项,但您并未指出这是一个问题 - 我只是在解决数字 运行 在一起且没有逗号的问题。如果你也不想要重复的项目,你也可以删除内部的 for 循环 - 基本上就像你第一次做的那样,但是用一个 if
来查看项目是否被选中
for (int j = 0; j < x; j++)
{
objNPTBEL.workdayidlist += checkBoxComboBox1.GetItemText(checkBoxComboBox1.CheckBoxItems[i].Text) + ",";
}
...
objNPTBEL.workdayidlist = objNPTBEL.workdayidlist.TrimEnd(',');
可能值得指出的是,制作 objNPTBEL.workdayidlist
类似 List<int>
而不是 csv