首页 / 知识
关于c#:启动时隐藏单个表单
2023-04-15 19:24:00

Single Form Hide on Startup我有一个带有一个窗体的应用程序,在Load方法上,我需要隐藏窗体。 该表单将在需要时显示(按照Outlook 2003样式弹出窗口的思路显示),但是我无法弄清楚如何在加载时隐藏表单而不会造成混乱。 有什么建议? 我来自C#,但在vb.net中应该非常相似。 在主程序文件的Main方法中,您将看到以下内容:
这将创建一个新的主表单,并将应用程序的生命周期限制为该主表单的生命周期。 但是,如果删除Application.Run()的参数,则该应用程序将在不显示任何表单的情况下启动,并且可以随意显示和隐藏表单。
与其在Load方法中隐藏表单,不如在调用Application.Run()之前初始化表单。我假设表单上会显示一个NotifyIcon,以在任务栏中显示图标-即使表单本身尚不可见,也可以显示该图标。从NotifyIcon事件的处理程序调用 通常,只有在以后使用托盘图标或其他方法显示表单时,您才这样做,但是即使您从不显示主表单,它也可以很好地工作。 在Form类中创建一个默认为false的布尔值:
然后重写SetVisibleCore方法
因为Application.Run()会在加载表单后设置表单.Visible = true,所以它将拦截该表单并将其设置为false。在上述情况下,它将始终设置为false,直到通过将allowhowdisplay设置为true启用它为止。 现在,将使表单无法在启动时显示,现在,您需要通过设置allowhowdisplay = true来重新启用SetVisibleCore以使其正常运行。您将需要在显示表单的任何用户界面功能上执行此操作。在我的示例中,这是我notiyicon对象中的左击事件:
我用这个:
显然,您必须更改if条件。
在构建表单时(根据您的目标,是设计器,程序Main还是Form构造函数),
当您需要显示表单时(大概是在NotifyIcon发生事件时),必要时可以反向显示,
连续的显示/隐藏事件可以更简单地使用Form的Visible属性或Show / Hide方法。 尝试也从任务栏隐藏该应用程序。 为此,请使用此代码。
谢谢。 用这个扩展您的主要形式:
例如:
本文中的更多信息(西班牙语): http://codelogik.net/2008/12/30/primer-form-oculto/ 您将要设置窗口状态为最小化,并在任务栏中显示为false。然后,在表单末尾,将加载集窗口状态最大化并在任务栏中显示为true
我为此问题付出了很多努力,但解决方案比我要简单得多。
运行正常。
将其放在您的Program.cs中:
要显示表单时,请使用以下命令:
重写OnVisibleChanged形式
如果需要显示触发器,可以添加触发器
我遇到了一个与发布者类似的问题,即在表单完成加载之前触发了在form_Load事件中隐藏表单的代码,从而使Hide()方法失败(不崩溃,只是没有按预期工作)。 其他答案很有效,但是我发现一般来说,form_Load事件通常会遇到此类问题,您想要放到那里的内容可以轻松地放在构造函数或form_Shown事件中。 无论如何,当我移动相同的代码以检查某些事情然后在不需要表单时隐藏该表单(单点登录失败时的登录表单),该表单将按预期工作。 启动不带表单的应用程序意味着您将不得不自行管理应用程序的启动/关闭。 从不可见的形式开始窗体是一个更好的选择。 此示例支持完全隐身,并且仅在系统托盘中支持NotifyIcon,而无需单击,等等。 此处更多信息:http://code.msdn.microsoft.com/TheNotifyIconExample 作为对Groky响应的补充(在我看来,这实际上是迄今为止最好的响应),我们还可以提及ApplicationContext类,该类还允许(如本文示例中所示)打开两个(或更多)表单在应用程序启动时使用它们,并控制应用程序的生命周期。
这是一个简单的方法:
这对我来说非常合适:
当我启动该项目时,所有内容都被隐藏,包括任务栏中的内容,除非我需要显示它。 在设计器中,将表单的Visible属性设置为false。然后避免调用Show()直到需要它为止。 更好的范例是在需要之前不创建表单的实例。 为什么会这样呢? 为什么不像控制台应用程序那样开始,并在必要时显示表单?除了将控制台应用程序与表单应用程序分开的参考之外,没有什么其他的。 当您甚至不需要它时,无需贪婪地获取表单所需的内存。 我这样做是这样-从我的角度来看,最简单的方法是: 将表单的" StartPosition"设置为"手动",并将其添加到表单的设计器中:
确保将位置设置为超出或小于屏幕尺寸的位置。以后,当您要显示表单时,请将"位置"设置为屏幕尺寸内的某个值。 根据各种建议,我要做的就是: 隐藏表单:
显示表格:
|
最新内容
相关内容
linux显示错误命令?
linux显示错误命令?,信息,系统,电脑,状态,时间,环境,命令,搜狐,密码,异常,虚拟机里怎么开始linux系统,打startx命令提示错误1、第一种:这个问题linux逐行显示命令?
linux逐行显示命令?,标准,信息,系统,工作,地址,命令,实时,名称,文件,目录,Linux中显示一个文件最后几行的命令是什么?1、tail -n 20 filenamelinux显示时间命令?
linux显示时间命令?,时间,系统,管理,标准,信息,单位,工具,数据,中国,命令,linux必学的60个命令安装和登录命令:login、shutdown、halt、rebootlinux启动显示命令行?
linux启动显示命令行?,系统,密码,终端,状态,首页,情况,基础,电脑,信息,工具,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信linux启动显示命令行?
linux启动显示命令行?,系统,密码,终端,状态,首页,情况,基础,电脑,信息,工具,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信linux显示之前的命令?
linux显示之前的命令?,系统,信息,命令,地址,服务,环境,数据,标准,数字,不了,linux系统查看自己在linux上使用过的前10次命令首先打开Linux直接linux打开显示器命令?
linux打开显示器命令?,信息,工具,系统,环境,发行,实时,数据,设备,命令,文件,Linux文件系统操作命令cat:可以显示文件的内容(经常和more搭配使用linux命令实时显示?
linux命令实时显示?,系统,实时,时间,信息,情况,命令,对比,电脑,名称,一致,linux用set命令显示当前模式set命令作主要是显系统中已经存在的shellinux外部命令显示?
linux外部命令显示?,系统,工具,命令,一致,盘中,软件,技术,外部,内部,文件夹,Linux中如何分屏显示的命令是什么linux中如果想要把某个命令或者linux命令显示ip?
linux命令显示ip?,地址,系统,网络,信息,技术,电脑,手机,设备,服务,管理,配置LINUX的IP命令1、(1)Ifconfig命令 第一种使用ifconfig命令配置网卡linux编译时显示命令?
linux编译时显示命令?,系统,基础,工具,代码,百度,下来,网上,命令,内核,文件,LINUX中此程序运行后,为何刷新不出命令提示符?1、有几个原因:一:你linux显示运行命令?
linux显示运行命令?,系统,服务,状态,信息,工具,数据,电脑,标准,管理,时间,如何查看linux服务器运行状态?1、linux怎么查看服务器状态?我们一起