WinForm程序启动时不显示主窗体
来源:互联网 发布:java连接phoenix 编辑:程序博客网 时间:2024/04/30 11:26
文中所述WinForm程序启动时不显示主窗体的实现方法主要有以下5种,个人觉得第五种最简单,而且效果也不错,第四种方法也值得推荐。
实现代码及简短解释如下:
//隐藏窗体的方法1/5:不指定任何窗体为主窗体
//注意:通常,在一个程序中,关闭主窗体,就可以关闭应用程序。
//但是在没有主窗体中,不行。
//只能使用Application.Exit()才能关闭应用程序。
//using可以保证Application结束前,关闭MyMainForm
using (new Form1())
{
Application.Run();
};
//Application.Run(new Form1());
//隐藏窗体的方法2/5:
//通过close()关闭主窗口同时可以关闭应用程序
protected override CreateParams CreateParams
{
get
{
Hide();
return base.CreateParams;
}
}
//隐藏窗体的方法3/5:
//这种方法仍然不能用Close主窗口的方式来关闭应用程序, 还得使用Application.Exit。
protected override void SetVisibleCore( bool value)
{
base.SetVisibleCore(false);
}
//注意:方法2和3 使用Show好像没办法调出主窗口,比较郁闷。
//隐藏窗体的方法4/5 part1/2: 推荐使用!!!
//ApplicationContext实质上就是一个Application与主窗体之间的连接器,
//掌管着二者之间的互动关系。其中最主要的,就是负责在主窗体
//关闭时结束线程。既然如此,我们只要根据需要自定义一个ApplicationContext就可以了
internal class HideOnStartupApplicationContext : ApplicationContext
{
private Form mainFormInternal;
// 构造函数,主窗体被存储在mainFormInternal
public HideOnStartupApplicationContext( Form mainForm)
{
this.mainFormInternal = mainForm;
this.mainFormInternal .Closed += new EventHandler(mainFormInternal_Closed);
}
// 当主窗体被关闭时,退出应用程序
void mainFormInternal_Closed(object sender, EventArgs e )
{
Application.Exit();
}
}
//在Main中作如下修改:
HideOnStartupApplicationContext context = new HideOnStartupApplicationContext( new Form1());
Application.Run(context );
//隐藏窗体的方法5/5: 推荐使用!!!
//在构造函数中或者直接设置form属性
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
程序中配合notifyIcon 控件一起使用,效果很好!
以上代码在VS2005下编译通过。
- WinForm程序启动时不显示主窗体
- WinForm程序启动时不显示主窗体的5种方法
- 转:C#里WinForm程序启动时不显示主窗体的方法
- C# WinForm程序启动时不显示主窗体的实现方法
- 程序启动时不显示主窗体
- C#Winform实现程序关闭隐藏窗体,二次程序启动时显示
- 启动程序时,不显示窗体,只显示托盘图标的方法
- 如何让程序启动后不显示窗体?
- 在winform程序中启动wpf窗体
- 在winform程序中启动wpf窗体
- winform MDI结构中子窗体不显示在主窗体菜单栏上面的方法
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- C# winform 开机自启动时最小化到托盘 单击显示窗体,右击显示菜单
- 程序启动时不显示界面
- 多文档的一些操作:启动时不自动打开一个空文档、启动时主窗体最大化显示、打开一个子窗体时最大化显示
- winform窗体的最大化最小化按钮不显示
- C#Winform不重复的显示子窗体
- C# Winform程序设置登录窗体先启动
- [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(2) - 线程和并发
- nohup让程序后台执行
- PHP匹配中文汉字
- AndroidManifest.xml中的application中的name属性
- UIWindow
- WinForm程序启动时不显示主窗体
- leetCode 69.Sqrt(x) (平方根) 解题思路和方法
- codevs1005
- Windows下Python添加库(模块)路径
- 初识编译器
- B. Worms
- 基于OpenLayers的Web GIS示例
- Codeforces Round #246 (Div. 2) (ABCD详细题解)
- web2.0之JSTL与EL