.net C#在启动时隐藏(),不将ShowInTaskbar设置为false
我正在尝试制作一个带有热键和任务栏托盘中启动选项的应用程序 现在的问题是,在加载事件中使用.net C#在启动时隐藏(),不将ShowInTaskbar设置为false,.net,c#-3.0,hide,startup,hotkeys,.net,C# 3.0,Hide,Startup,Hotkeys,我正在尝试制作一个带有热键和任务栏托盘中启动选项的应用程序 现在的问题是,在加载事件中使用this.Hide(),不会产生任何效果。我可以添加this.ShowInTaskbar=false,但在我再次将其设置为true之后,为了显示窗口,它会自动禁用热键 有没有其他方法可以在启动时隐藏我的表单,或者阻止我的热键注销 隐藏表单的我的代码: private void frmMain_Load(object sender, EventArgs e) { if (StartBG())
this.Hide()
,不会产生任何效果。我可以添加this.ShowInTaskbar=false
,但在我再次将其设置为true之后,为了显示窗口,它会自动禁用热键
有没有其他方法可以在启动时隐藏我的表单,或者阻止我的热键注销
隐藏表单的我的代码:
private void frmMain_Load(object sender, EventArgs e)
{
if (StartBG())
{
this.Hide();
this.ShowInTaskbar = false;
notifyIcon.Visible = true;
notifyIcon.ShowBalloonTip(3000, "Kore screenshots", "The application is started and will run on the background.", ToolTipIcon.Info);
}
}
在上面的代码之后,热键仍然有效
private void showform()
{
this.Show();
this.ShowInTaskbar = true;
notifyIcon.Visible = false;
this.WindowState = FormWindowState.Normal;
}
执行此代码后,热键将被禁用。要防止窗体可见,但仍要创建其句柄以使通知图标正常工作,需要重写SetVisibleCore()。像这样:
protected override void SetVisibleCore(bool value) {
if (value && !this.IsHandleCreated) {
value = false;
CreateHandle();
// Put your Load event code here
//...
}
base.SetVisibleCore(value);
}
请注意,在表单稍后实际可见之前,Load事件或OnLoad()方法不会运行。因此,请将您获得的所有代码移到这个覆盖中。我过去所做的是创建一个单独的表单,该表单总是最小化并显示InTaskBar false(因此用户永远看不到它),并且该表单拥有NotyifyIcon 然后,任何我想显示的UI,我都开发成单独的表单,并根据需要显示/隐藏。我发现这比试图得到一个可能在taskabr中显示/隐藏/显示/拥有notifyicon的表单更干净