仅当项目包含字符串时,才将其添加到组合框中



我试图实现的是向comboBox24中添加一个项,但前提是comboBox10中包含字符串。

case "PN63":
comboBox24.Items.Clear();

if (comboBox10.Items.Contains("CL150"))
{
comboBox24.Items.Add("ASME B16.5-150 RF");
}
else if (comboBox10.Items.Contains("PN16"))
{
comboBox24.Items.Add("FLG EN1092-1 PN16 B1");
}
else if (comboBox10.Items.Contains("PN25"))
{
comboBox24.Items.Add("FLG EN1092-1 PN25 B1"); ;
}
else if (comboBox10.Items.Contains("PN40"))
{
comboBox24.Items.Add("FLG EN1092-1 PN40 B1");
}
else if (comboBox10.Items.Contains("CL300"))
{
comboBox24.Items.Add("ASME B16.5-300 RF");
}
break;

到目前为止,即使在多个条件成立的情况下,我也只添加了一个(第一个(项目。我不是很有经验,但我认为if语句在true之后会中断。

谁能告诉我如何做到这一点吗。

case "PN63":让我很担心。您是否有大量其他案例具有基本相同类型的代码,但具有不同的值?

如果是这样的话,我建议你使用更像的东西

case "PN63":
string[,] pairs = {
{"CL150", "ASME B16.5-150 RF" },
{"PN16", "FLG EN1092-1 PN16 B1" },
{"PN25", "FLG EN1092-1 PN25 B1" },
{"PN40", "FLG EN1092-1 PN40 B1" },
{"CL300", "ASME B16.5-300 RF" }
};
SetComboboxes(comboBox10, comboBox24, pairs);
break;

使用辅助方法SetComboboxes():

private void SetComboboxes(ComboBox comboToCheck, ComboBox comboToAdd, string[,] pairs)
{
comboToAdd.Items.Clear();
for (int r = 0; r <= pairs.GetUpperBound(0); r++)
{
if (comboToCheck.Items.Contains(pairs[r, 0]))
{
comboToAdd.Items.Contains(pairs[r, 1]);
}
}
}

您正在测试不同的条件,并希望所有条件都能执行,因此您应该删除else关键字并使它们成为just-if语句。

case "PN63":
comboBox24.Items.Clear();

if (comboBox10.Items.Contains("CL150"))
{
comboBox24.Items.Add("ASME B16.5-150 RF");
}
if (comboBox10.Items.Contains("PN16"))
{
comboBox24.Items.Add("FLG EN1092-1 PN16 B1");
}
if (comboBox10.Items.Contains("PN25"))
{
comboBox24.Items.Add("FLG EN1092-1 PN25 B1"); ;
}
if (comboBox10.Items.Contains("PN40"))
{
comboBox24.Items.Add("FLG EN1092-1 PN40 B1");
}
if (comboBox10.Items.Contains("CL300"))
{
comboBox24.Items.Add("ASME B16.5-300 RF");
}
break;

最新更新