我试图实现的是向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之后会中断。
有人能告诉我如何做到这一点吗?
发布于 2020-12-21 16:21:27
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;使用helper方法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]);
}
}
}发布于 2020-12-21 14:55:22
您正在测试不同的条件,并希望所有条件都能执行,因此您应该删除else关键字,并使它们只在语句中出现。
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;https://stackoverflow.com/questions/65394356
复制相似问题