none
winform 如何让程序启动就隐藏主窗口? RRS feed

  • 问题

  • 大家好,我的winform程序只有一个主窗口,启动时不显示主窗口,要在系统托盘里显示,于是我在主窗口Load事件中Hide了主窗口,但启动程序时主窗口会一闪二过不是很好看,那如何实现才能在启动时【彻底】隐藏主窗口?
    2018年6月21日 9:24

答案

  • 我最终用了这个方法:
    1.MainForm的构造方法中添加:

    public MainForm()
    {
        InitializeComponent();
    
        this.ShowInTaskbar = false;
        this.Opacity = 0;
    }

    2.MainForm的Shown事件中添加:

    private void MainForm_Shown(object sender, EventArgs e)
    {
        this.Hide();
    
        this.ShowInTaskbar = true;
        this.Opacity = 1;
    }

    • 已标记为答案 jesse hao 2018年7月5日 4:57
    2018年7月5日 4:56

全部回复

  • https://stackoverflow.com/questions/70272/single-form-hide-on-startup

    可以做到启动时无窗口显示,调用无参数的Application.Run()。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年6月22日 0:31
  • 如果是VB.NET 在LOAD事件最开始写这几行代码试试:

            Me.WindowState = FormWindowState.Minimized
            Me.ShowInTaskbar = False
            Me.Hide()
            Application.DoEvents()

    如果是C#写这几行代码:

        this.WindowState = FormWindowState.Minimized;
        this.ShowInTaskbar = false;
        this.Hide();
        Application.DoEvents();

    2018年6月22日 1:01
  • 在程序入口的地方改。一般是 progame下的main方法里。或 app.xaml里设置主窗口隐藏。
    2018年6月22日 1:18
  • 你好,

    可以参考Shuanghua 的 maple 的方案, 也可以在你的主窗口的load 事件里使用下面的代码来隐藏。

    private void Form1_Load(object sender, EventArgs e)
            {
                BeginInvoke(new MethodInvoker(delegate
                {
                    Hide();
                }));
            }

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年6月22日 6:29
    版主
  • 我最终用了这个方法:
    1.MainForm的构造方法中添加:

    public MainForm()
    {
        InitializeComponent();
    
        this.ShowInTaskbar = false;
        this.Opacity = 0;
    }

    2.MainForm的Shown事件中添加:

    private void MainForm_Shown(object sender, EventArgs e)
    {
        this.Hide();
    
        this.ShowInTaskbar = true;
        this.Opacity = 1;
    }

    • 已标记为答案 jesse hao 2018年7月5日 4:57
    2018年7月5日 4:56