我有一个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;
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因(我希望你们其中一位女士或先生们能够提供),我第一次右键单击与此cmTestplan关联的文本框时,菜单不会显示.此后,只需单击一下,它就会一致显示.
我已经尝试评论所有文件/文件夹检查仍然得到问题.
您的菜单无法打开,因为对于空菜单,事件参数取消默认为true.
只需添加e.Cancel = false;您的Opening事件处理程序;
RightClickSetup(cmTestplan.SourceControl.Text);
e.Cancel = false;
Run Code Online (Sandbox Code Playgroud)
..你也可以跳过"显示"电话.
另请参见MSDN
| 归档时间: |
|
| 查看次数: |
2031 次 |
| 最近记录: |