如何隐藏窗体

lihaiying616 2009-04-21 08:18:52
用主窗体不显示在任务栏并且最小化可以实现窗体的隐藏,但是这时候可以用Alt+Tab看到该窗体的存在的。如何从根本上实现窗体在加载的同时不可见。请各位大侠帮忙!
...全文
199 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
renzhaoqiang 2009-11-12
  • 打赏
  • 举报
回复
程序运行时当你按Alt+Tab时不显示你的这个窗体程序

protected override CreateParams CreateParams
{
get
{
int WS_EX_TOOLWINDOW = 0x80;
CreateParams CP = base.CreateParams;

CP.ExStyle = CP.ExStyle | WS_EX_TOOLWINDOW;
return CP;
}
}

protected override CreateParams CreateParams
{
get
{
const int WS_EX_APPWINDOW = 0x00040000;
const int WS_EX_TOOLWINDOW = 0x00000080;

CreateParams result = base.CreateParams;
result.ExStyle = result.ExStyle & (~WS_EX_APPWINDOW);
result.ExStyle = result.ExStyle | WS_EX_TOOLWINDOW;
return result;
}
}
zjm3257028 2009-11-12
  • 打赏
  • 举报
回复
楼上的已经说了~~~
yingzhilian2008 2009-04-21
  • 打赏
  • 举报
回复
this.ShowInTaskbar = false; 这个可以!
SK_Aqi 2009-04-21
  • 打赏
  • 举报
回复
学习了
bingbingw 2009-04-21
  • 打赏
  • 举报
回复
应该就是这样。。
Myth_NiuNiu 2009-04-21
  • 打赏
  • 举报
回复
this.ShowInTaskbar = false;
mykelly6 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zgke 的回复:]
直接设置ShowInTaskbar 为false 应该就是你要的效果
this.ShowInTaskbar = false;
[/Quote]
up

我的问题跟你正好相反,加载东西太多,用户看不见窗体,还以为没打开。。。
深海之蓝 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zgke 的回复:]
直接设置ShowInTaskbar 为false 应该就是你要的效果
this.ShowInTaskbar = false;
[/Quote]
是的
热学沸腾56 2009-04-21
  • 打赏
  • 举报
回复
up,mark
love小在在 2009-04-21
  • 打赏
  • 举报
回复
API函数:showWindow(IntPtr Hwnd,int flag)
这样的话任务栏里看不到,ALT+TAB也看不到
zzxap 2009-04-21
  • 打赏
  • 举报
回复
private void MainForm_Activated(object sender, EventArgs e)
{
this.Visible = false;
}
zzxap 2009-04-21
  • 打赏
  • 举报
回复
http://blog.163.com/zgkingdom@126/blog/static/22734732008333400226/
shui8iuhs 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zgke 的回复:]
直接设置ShowInTaskbar 为false 应该就是你要的效果
this.ShowInTaskbar = false;
[/Quote]

完全同意。
wartim 2009-04-21
  • 打赏
  • 举报
回复
不但窗体本身看不到,状态栏里也没有,alt+tab弹出来的活动窗体列表也看不到,不过有什么意义。你想干嘛
wartim 2009-04-21
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication30
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

protected override void SetVisibleCore(bool values)
{
base.SetVisibleCore(false);
}

}
}


不过这样窗体本身也看不到了
哈哈潜伏哥 2009-04-21
  • 打赏
  • 举报
回复
一楼说的不对,如果要alt+tab能够切换该窗口的话,二楼是正确的。
要使窗体在加载的时候真正隐藏也不难,只需要先初始化一个窗体对象实例,然后在需要的时候调用show方法来显示就可以了。

Form1 frm = new Form1(); //这个是初始化实例,这时候窗体是没有显示出来的。

Thread.sleep(10000);

frm.Show();//调用这个方法后才能显示出窗口来,只要不调用这个方法窗口是不会显示出来的。
zgke 2009-04-21
  • 打赏
  • 举报
回复
直接设置ShowInTaskbar 为false 应该就是你要的效果
this.ShowInTaskbar = false;
yafeya 2009-04-21
  • 打赏
  • 举报
回复
Form frm = new Form();
if(frm.Visible)
{
frm.Hide();
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧