我正在制作一个插件应用程序,它将在C#中的第三方程序中运行。不幸的是,我无法在程序内部调试我的代码。 这是一个应用程序,用户从下拉列表中选择项目,当选择某些组合时,其他组合被排除等。 但是在其中一个下拉菜单中,当我选择一定数量的某些命令时会执行,但其他命令并非没有明显的原因(对于我来说,我是新手,也许对你来说这很明显)。
private void WON_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DesignNo.IsEnabled = true;
MessageBox.Show("Selection Changed!!!");
string contentStr = (WON.SelectedItem ?? string.Empty).ToString();
//If AK89 is selected then the WONItem numbers have to change to 14
if (string.Equals("AK89", contentStr, StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show("IN AK89!!!");
this.WONitem.Items.Clear();
WONitem.Items.Add("-1");
WONitem.Items.Add("-2");
WONitem.Items.Add("-3");
WONitem.Items.Add("-4");
WONitem.Items.Add("-5");
WONitem.Items.Add("-6");
WONitem.Items.Add("-7");
WONitem.Items.Add("-8");
WONitem.Items.Add("-9");
WONitem.Items.Add("-10");
WONitem.Items.Add("-11");
WONitem.Items.Add("-12");
WONitem.Items.Add("-13");
WONitem.Items.Add("-14");
WONitem.SelectedIndex = WONitem.Items.Count - 14;
}
// Disable the ones done.
//
//contentStr = (this.WON.SelectedItem ?? string.Empty).ToString();
//MessageBox.Show("IN AK85!!!" + contentStr);
if (string.Equals("AK85", contentStr, StringComparison.OrdinalIgnoreCase))
{
contentStr = (this.DesignNo.SelectedItem ?? string.Empty).ToString();
MessageBox.Show("IN AK85!!!" + contentStr);
if (string.Equals(" 100019646-2", contentStr, StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show("IN the drawingNo 100019646-2!!!");
DesignNo.Items.Clear();
WONitem.Items.Clear();
MessageBox.Show("should be cleared now!!!");
WONitem.Items.Add("-9");
WONitem.Items.Add("-10");
WONitem.Items.Add("-11");
WONitem.Items.Add("-12");
WONitem.Items.Add("-13");
WONitem.Items.Add("-14");
WONitem.Items.Add("-15");
WONitem.Items.Add("-16");
WONitem.SelectedIndex = WONitem.Items.Count - 8;
}
else if (string.Equals(" 100019646-1", contentStr, StringComparison.OrdinalIgnoreCase))
{
//contentStr = (this.DesignNo.SelectedItem ?? string.Empty).ToString();
//if (string.Equals(" 100019646-1", contentStr, StringComparison.OrdinalIgnoreCase))
MessageBox.Show("IN the drawingNo 100019646-1!!!");
this.WONitem.Items.Clear();
WONitem.Items.Add("-9");
WONitem.Items.Add("-10");
WONitem.Items.Add("-11");
WONitem.Items.Add("-12");
WONitem.Items.Add("-13");
WONitem.Items.Add("-14");
WONitem.Items.Add("-15");
WONitem.Items.Add("-16");
WONitem.SelectedIndex = WONitem.Items.Count - 8;
}
else
{
}
}
DesignNo.IsEnabled = false;
当WON等于AK89时,WONitem将WONitems成功更改为14。 当WON等于AK85且DesignNO等于“100019646-2”时,我可以看到该消息(我已经放置了所有这些消息,因此我知道在程序中执行了哪个命令) “在AK85 !!! AK85”然后消息“在图中没有100019646-2 !!!”弹出但下一个命令不会被执行,也会消息 MessageBox.Show(“应该立即清除!!!”); 永远不会出现!
我被困住了。有什么想法吗?
谢谢你们的时间。
答案 0 :(得分:0)
最后是我(一如既往)。
我不得不用string.Compare替换我的比较。我有一些空格和破折号在我的字符串中根本不受欢迎。无论如何string.Compare完成了这项工作。
代码如下。
contentStr = (this.DesignNo.SelectedItem ?? string.Empty).ToString();
string compareWith = " 100019406-2";
int compareResult = string.Compare(contentStr, compareWith);
if (compareResult == 1)