使表单在首次加载时不可见

时间:2011-01-25 22:03:36

标签: c# winforms visibility opacity

目前,窗体的不透明度为0%,因此在加载时,它应该是不可见的,但是当窗体加载时,它会显示几秒钟。由于默认不透明度设置为0%,并且在将不透明度设置回100%之前将窗体的可见性设置为false,我认为该窗体应该是不可见的,直到我告诉它为止。

    public FormMain()
    {
        InitializeComponent();
        this.Visible = false;
        this.Opacity = 1.00;
    }

如何将表单隐藏为默认设置?

2 个答案:

答案 0 :(得分:6)

这是可能的。您必须阻止Application类使表单可见。您无法修改应用程序,这已被锁定。但这有效:

    protected override void SetVisibleCore(bool value) {
        if (!this.IsHandleCreated) {
            this.CreateHandle();
            value = false;
        }
        base.SetVisibleCore(value);
    }

这是一次性取消,您下次调用Show()或设置Visible = true将使其可见。您需要某种触发器,NotifyIcon上下文菜单是典型的。请注意,Load事件在实际可见之前不会运行。其他一切正常工作,调用Close()方法终止程序。

答案 1 :(得分:-1)

您可以使用 Form_Shown 事件。当你的主窗体显示时,这个事件将被调用,你可以在那里修改窗体的属性,因为它是完全初始化的。这不是最美观的方式。但这是我找到的唯一简单方法。

private void Form1_Shown(object sender, EventArgs e)
{
    this.Visible = false;
}