使表单在首次加载时不可见
Posted
技术标签:
【中文标题】使表单在首次加载时不可见【英文标题】:Making a form be invisible when it first loads 【发布时间】:2011-06-15 12:33:35 【问题描述】:目前,表单的不透明度为 0%,因此当它加载时,它应该是不可见的,但是当表单加载时,它会在几秒钟内可见。由于默认不透明度设置为 0%,并且表单的可见性在不透明度设置回 100% 之前设置为 false,因此我认为在我告诉它之前表单应该是不可见的。
public FormMain()
InitializeComponent();
this.Visible = false;
this.Opacity = 1.00;
如何让我的表单默认不可见?
【问题讨论】:
程序启动时,Application.Run(FormMain)
;使表单可见。因此,如果您想在加载时隐藏,请将this.Hide()
或this.Visible = false
添加到它的Paint 事件或创建FormMain
的实例,然后调用Application.Run()
重复....***.com/questions/807005/…
【参考方案1】:
这是可能的。您必须阻止 Application 类使表单可见。你不能修补应用程序,它被锁定了。但这有效:
protected override void SetVisibleCore(bool value)
if (!this.IsHandleCreated)
this.CreateHandle();
value = false;
base.SetVisibleCore(value);
这是一次性取消,您下次调用 Show() 或设置 Visible = true 将使其可见。您需要某种触发器,典型的是 NotifyIcon 上下文菜单。请注意,Load 事件在实际可见之前不会运行。其他一切正常,调用 Close() 方法会终止程序。
【讨论】:
不,它不能正常工作,不会调用 Load() 方法。 @CodeOrElse 如果您指的是 Load 事件,请再次阅读答案。不要只是复制和粘贴代码。【参考方案2】:您可以使用 Form_Shown 事件。当您的主表单显示时,将调用此事件,您可以在其中修改表单的属性,因为它已完全初始化。这不是最美观的方式。但这是我找到的唯一简单方法。
private void Form1_Shown(object sender, EventArgs e)
this.Visible = false;
【讨论】:
以上是关于使表单在首次加载时不可见的主要内容,如果未能解决你的问题,请参考以下文章
使用 Curl 从 Yii2 进行 WP 自动登录在首次加载时不起作用
UIDocumentInteractionController 操作/选项菜单在首次启动时不可见