C# 如何在启动时不显示窗口?
可能重复:C# 如何在启动时不显示窗口?,c#,.net,winforms,c#-4.0,systray,C#,.net,Winforms,C# 4.0,Systray,可能重复: 我的应用程序有一个系统托盘,我不希望窗口在启动时出现 我怎样才能做到这一点 这是默认的Windows窗体应用程序 我拖过一个notifyIcon和一个contexualMenuStrip 当表单关闭时,应用程序退出(也不希望这样)。但当应用程序启动时,Windows窗体也会显示出来。那么,如何在启动时不启动表单(并在关闭窗口时不退出)?基本上,您需要覆盖SetVisibleCore()以实现这一点。。。另一个选项是将ShowInTaskbar设置为false,并在Applicat
我的应用程序有一个系统托盘,我不希望窗口在启动时出现 我怎样才能做到这一点
这是默认的Windows窗体应用程序 我拖过一个notifyIcon和一个contexualMenuStrip
当表单关闭时,应用程序退出(也不希望这样)。但当应用程序启动时,Windows窗体也会显示出来。那么,如何在启动时不启动表单(并在关闭窗口时不退出)?基本上,您需要覆盖
SetVisibleCore()
以实现这一点。。。另一个选项是将ShowInTaskbar
设置为false
,并在Application.Run中使用ApplicationContext
一些参考链接和示例代码:
答案不是隐藏主窗体,而是首先不显示/加载它
一种方法是创建自定义的
ApplicationContext
:
public static class Program
{
public static void Main(string[] arguments)
{
var context = new NotifyIconApplicationContext();
context.Icon.Icon = new Icon(PATH_TO_ICON_FILE_HERE);
context.Icon.Visible = true;
Application.Run(context);
}
}
class NotifyIconApplicationContext : ApplicationContext
{
public NotifyIconApplicationContext()
{
Icon = new NotifyIcon();
}
public NotifyIcon Icon { get; set; }
}
然后,您可以在应用程序之前将处理程序附加到通知图标。运行(上下文)
行以允许打开主窗体、显示菜单等操作,…请显示一些源代码。。。你试过什么?什么不起作用?您不能将启动表单的可见属性设置为false
?或者将默认窗口位置设置为隐藏?我记得我做过类似的事情,但有一段时间没有接触过WinForms。表单没有可见属性。这种方法的一个副作用是没有触发初始化代码。例如:如果我有一个在MainForm_Load中启动的计时器,它永远不会被启用,也永远不会触发Tick事件。我甚至尝试过System.Timers.Timer,只是为了确保不仅仅是Windows.Forms.Timer以这种方式运行,而且结果是相同的。