C# 托盘图标在调试模式下工作,而不是在发布模式下

C# 托盘图标在调试模式下工作,而不是在发布模式下,c#,windows,system-tray,trayicon,C#,Windows,System Tray,Trayicon,我目前在Windows应用程序中工作 我刚在关闭表单时创建了一个托盘图标,托盘图标在系统托盘中可见 左键单击时,托盘图标窗体将最大化为正常状态 右键单击事件不是在发布模式下工作,而是在调试模式下工作 生成此应用程序权限事件后,output.exe文件将从调试模式中删除 任何帮助都将不胜感激。 提前谢谢 形式荷载 private void MainRelease_Load(object sender, EventArgs e) { TrayIcon.Visible = false;

我目前在Windows应用程序中工作

我刚在关闭表单时创建了一个托盘图标,托盘图标在系统托盘中可见

左键单击时,托盘图标窗体将最大化为正常状态

右键单击事件不是在发布模式下工作,而是在调试模式下工作

生成此应用程序权限事件后,output.exe文件将从调试模式中删除

任何帮助都将不胜感激。 提前谢谢

形式荷载

private void MainRelease_Load(object sender, EventArgs e)
{
    TrayIcon.Visible = false;
    TrayMenu.Items.Add("Exit");
    TrayMenu.Items[0].Click += new System.EventHandler(this.Dispose_Click);
}
在按钮关闭事件中

   private void btnClose_Click(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Minimized;
    TrayIcon.Visible = true;
    ShowInTaskbar = false;
}
收件箱图标鼠标单击事件

private void TrayIcon_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    {
        this.WindowState = FormWindowState.Normal;
        TrayIcon.Visible = false;
        ShowInTaskbar = true;

    }
    if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
        TrayMenu.Show(Cursor.Position.X, Cursor.Position.Y);
    }
}
托盘菜单处置事件

private void Dispose_Click(object Sender, EventArgs e)
{
    TrayIcon.Visible = false;
    TrayIcon.Icon = null;
    TrayIcon.Dispose();
    Application.Exit();
}
在释放模式下,托盘图标鼠标右键单击事件不起作用。但在调试模式下,它可以工作


请帮我解决这个问题

也许这是一个愚蠢的答案,但您确定您的发布版本是最新的吗?如果在设计器中进行调试,则在运行生成时不会更新发布生成,除非以这种方式进行设置。也许您的发布版本是在添加代码来处理右键单击之前生成的


如果不是这样,那么如果从发行版文件夹运行发行版构建,而不是在设计器的发行版模式下进行调试,发行版构建是否工作?

什么类型的TrayMenu?这不是ContextMenu(它没有Show(int,int)方法)…@elgonzo大概是ContextMenuStrip@elgonzo:我甚至试过TrayMenu.Show();和TrayMenu.Visible=true;而且不是working@elango“你能说得更具体些吗?”甘尼什,对不起,我真蠢。不知何故,我没有看到您正在使用Cursor.Position。我很尴尬:)发布版本只是最新的。我删除了Debug和Release文件夹并创建了一个新版本。然后错误仍然存在。