• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#Applicatcontext类

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Application类(位于System.Windows.Forms命名空间)公开了Run方法,可以调用该方法来调度应用程序进入消息循环。Run方法有三个重载

1、第一个重载版本不带任何参数,比较少使用

 

2、static void Run(System.Windows.Forms.Form mainForm)  调用这个重载,只需要吧希望作为主窗口的Form实例(包括从Form类派生的类)

传递给mianForm参数即可。一旦mainForm关闭,整个消息循环就会退出,Run方法返回,应用程序就会退出。

 

3、static void Run(System.Windows.Forms.ApplicationContext context) 这是Run方法中重载最灵活的。通常的做法是从ApplicationContext类

派生,并写入实现代码。ApplicationContext类也允许设置一个Form实例制作为主窗口,也可以不设置主窗口。这个Run方法会在ApplicationContext

对象进行消息循环。调用ApplicationContext类的ExitThread方法会导致ApplicationContext上的消息循环终止。

 

 

手动创建一个类:产生三个窗口,只有把三个窗口全部关闭程序才终止运行(基于第三种Run方法)

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;


//从ApplicationContext派生一个类出来,
public class MyApplication : ApplicationContext
{

    static int WindowsCount;//用于记录窗口个数
    private Form Windows1, Windows2, Windows3;//申请三个Form窗口  private只限于本类成员访问

    //构造函数,分别实例化三个窗口
    public MyApplication()
    {
        WindowsCount = 0;
        /*实例化Windows1*/
        Windows1 = new Form();
        Windows1.Text = "窗口1";
        Windows1.Size = new System.Drawing.Size(300, 300);
        Windows1.Location = new System.Drawing.Point(50, 100);
        Windows1.Name = "Form1";
        Windows1.FormClosed += OnMainFormClosed;//处理事件(窗口关闭的处理事件)
        WindowsCount += 1;//窗口总数加一

        Windows2 = new Form();
        Windows2.Text = "窗口2";
        Windows2.Size = new System.Drawing.Size(300, 300);
        Windows2.Location = new System.Drawing.Point(50, 100);
        Windows2.Name = "Form2";
        Windows2.FormClosed += OnMainFormClosed;//处理事件(窗口关闭的处理事件)
        WindowsCount += 1;//窗口总数加一

        Windows3 = new Form();
        Windows3.Text = "窗口3";
        Windows3.Size = new System.Drawing.Size(300, 300);
        Windows3.Location = new System.Drawing.Point(50, 100);
        Windows3.Name = "Form3";
        Windows3.FormClosed += OnMainFormClosed;//处理事件(窗口关闭的处理事件)
        WindowsCount += 1;//窗口总数加一

        //显示3个窗口
        Windows1.Show();
        Windows2.Show();
        Windows3.Show();      

    }
    private void OnMainFormClosed(object sender,FormClosedEventArgs e)
    {
        WindowsCount -= 1;
        if (WindowsCount == 0)
            ExitThread();//调用ExitThead终止消息循环

    }

}
namespace application1
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MyApplication());
        }
    }
}

 

 

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#泛型原理(旧)发布时间:2022-07-10
下一篇:
c#运用this.invoke()在多线程时对UI进行修改发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap