C# 从ALT+隐藏无边框窗口;选项卡菜单
我正在开发一个托盘应用程序,它在后台运行。 如果用户想要执行不同的操作,他们可以通过右键单击托盘图标(NotifyIcon)打开上下文菜单 因此,我的要求是: 1.应用程序始终以最小化模式启动,并将显示trayicon。C# 从ALT+隐藏无边框窗口;选项卡菜单,c#,.net,winforms,C#,.net,Winforms,我正在开发一个托盘应用程序,它在后台运行。 如果用户想要执行不同的操作,他们可以通过右键单击托盘图标(NotifyIcon)打开上下文菜单 因此,我的要求是: 1.应用程序始终以最小化模式启动,并将显示trayicon。 2.应用程序不应出现在任务栏上。 3.应用程序不应在ALT+TAB菜单中可见 我已经实现了以上两个要求,但在试图从ALT+Tab菜单隐藏应用程序时,它正在工作(从ALT+Tab中看不到),但它正在创建一个边缘较小的窗口,应用程序标题位于任务栏顶部的左侧角,如下图所示: 我想把
2.应用程序不应出现在任务栏上。
3.应用程序不应在ALT+TAB菜单中可见 我已经实现了以上两个要求,但在试图从ALT+Tab菜单隐藏应用程序时,它正在工作(从ALT+Tab中看不到),但它正在创建一个边缘较小的窗口,应用程序标题位于任务栏顶部的左侧角,如下图所示: 我想把那扇边缘很小的窗户移走 这是我的密码:
public Form1()
{
InitializeComponent();
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
HideThisForm();
}
protected override CreateParams CreateParams
{
get
{
// Turn on WS_EX_TOOLWINDOW style bit
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x80;
return cp;
}
}
private void HideThisForm()
{
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
this.Hide();
notifyApp.Visible = true;
notifyApp.ShowBalloonTip(2000, "BackgroundApp",
"This APP is running @ Background", ToolTipIcon.Info);
}
注:我在StackOverflow中看过一些类似的帖子,但没有一篇面临类似的问题。如果你有一个无边框的表单,即FormBorderStyle。没有,那么ShowInTaskbar=False不起作用。因此,除了Me.ShowInTaskbar=False之外,我们还应该将WS_EX_TOOLWINDOW设置为true 这不是我说的,而是这个:
当窗体变得可见时,您可以尝试将边框样式设置为所需的样式(当您松开焦点时,可以将其转回)在使用
this.Opacity=0之前,我已经完成了此操作代码>。有点像黑客,但是使用WinForms,这可能是唯一的方法。谢谢你的回答,我正在通过使用0x80
对cp.ExStyle
进行ORing来打开WS\u EX\u工具窗口。我尝试了你的第二个建议,但仍然是创建边缘窗口。是的,通过设置this.Opacity=0“代码>将使边缘窗口不可见,但我应该在何时更改不透明度以使其可见。@Sudhakardipudi--我的印象是,您从来都不需要查看表单,您只需要一个托盘菜单。有效点,但作为上下文菜单选项之一,我必须打开窗口。我认为通过更改不透明度(设置为100)在contextmenuitem\u中,单击事件解决了问题,让我试试。谢谢