我有一个C#应用程序,我动态填充,然后启动一个名为cmTestplan的上下文菜单。上下文菜单不会打开第一次点击
private void cmTestplan_Opening(object sender, CancelEventArgs e)
{
if ((cmTestplan.SourceControl is TextBox) &&
(cmTestplan.SourceControl.Enabled == true) &&
(cmTestplan.SourceControl.Text != ""))
{
RightClickSetup(cmTestplan.SourceControl.Text);
cmTestplan.Show();
}
}
private void RightClickSetup(string Path)
{
this.UseWaitCursor = true;
cmTestplan.Items.Clear();
//Test for file or folder
if (Directory.Exists(Path) == true)
{
cmTestplan.Items.Add("Open folder");
this.UseWaitCursor = false;
}
else if (File.Exists(Path) == true)
{
cmTestplan.Items.Add("Open folder");
cmTestplan.Items.Add("Open file");
this.UseWaitCursor = false;
}
}
出于某种原因(我希望你细女士或先生们一个可能能够提供)菜单未显示在第一次与此cmTestplan相关联的文本框我右键点击。它会一直显示在一个单一的右键单击。
我试过注释掉所有的文件/文件夹检查,仍然得到了问题。
尝试放置一个静态菜单,看看它是否显示正确。如果是这样,请尝试以小块加回动态逻辑,以确切查看事件链中断的情况(它闻起来像是一个异常,但我没有看到任何可能抛出它的东西)。此外,在事件开始时设置一个断点,并检查您的条件所基于的属性是否都具有期望值。 – 2011-04-05 14:13:18