为了账号安全,请及时绑定邮箱和手机立即绑定

this.Visible在Windows窗体中不起作用

this.Visible在Windows窗体中不起作用

C#
aluckdog 2019-12-04 12:46:08
我有个问题。我需要在加载窗口时隐藏我的窗口。但    private void Form1_Load(object sender, EventArgs e)    {        this.Visible = false;    }不管用。财产Visible仍然是真实的。我想念什么吗?
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

是的,在Windows窗体中,Visible属性很重要,这实际上是创建句柄并导致OnLoad()运行的原因。换句话说,直到它可见,该窗口才存在。并且它将忽略撤消此操作的尝试。


如果您使用NotifyIcon,通常仍然想创建该句柄但不使窗口可见是很常见的。您可以通过重写SetVisibleCore实现此目的:


    protected override void SetVisibleCore(bool value) {

        if (!this.IsHandleCreated) {

            value = false;

            CreateHandle();

        }

        base.SetVisibleCore(value);

    }

注意,直到窗口实际可见之前,OnLoad仍然不会运行,因此如有必要,将代码移入构造函数。只需在NotifyIcon的上下文菜单事件处理程序中调用Show()即可使窗口可见。


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 606 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信