C#Winform打开窗体的几种方法,注意事项的总结

C#Winform打开窗体的几种方法,注意事项的总结,第1张

一、打开MDI子窗体,且允许重复打开

FrmMytest frmMytest = new FrmMytest()

frmMytest.MdiParent = this

frmMytest.Show()&#8232

二、打开MDI子窗体,但不允许重复打开;即如果窗体未打开过,则直接打开,如果打开过,原来的窗体直接显示在最上面

        int index = HaveOpened(this, "FrmMytest")        

        if (index == -1)          

        {               

             FrmMytest frmMytest = new FrmMytest()

             frmMytest.MdiParent = this              

        野颂     frmMytest.Show()          

        }           

        else           

        {              

             this.MdiChildren[index].Show()           

        }

 

        /// <summary>

        /// 功能名称:查看MDI子窗体是否已经被打开

        /// 输入参数:MdiFather,Form,需要判断的父窗体对象

        ///          MdiChild,string,需要判断的子窗体控件名

        /// 返回结果:-1为没有被打开,正数为子窗体集的数组下标

        /// </summary>

        public static int HaveOpened(Form frmMdiFather, string strMdiChild)

        {

            int bReturn = -1

            for (int i = 0 i < frmMdiFather.MdiChildren.Length i++)

            {

                if (frmMdiFather.MdiChildren[i].Name == strMdiChild)

                {

                    frmMdiFather.MdiChildren[i].BringToFront()

                    bReturn = i

                    break

            宏滚    }

            }

            return bReturn

        }

三、show的方法

1、非模式窗体的打开方法

new FrmMytest().Show()

2、模式窗体的打开方法

FrmMytest frmMytest = new FrmMytest()

frmMytest.ShowDialog()

四、说明

1、需求,打开的子窗体不会在windows任务栏中显示,避免用户感觉一个系统有多个运行的问题

2、主窗体设置属性IsMdiContainer = true,MDI子窗体IsMdiContainer = false,否则系统编译时会报错。

3、show的方法,打开蔽脊余的子窗体不会在windows任务栏中显示的问题,需要在子窗体的属性中,将Form.ShowInTaskbar设置为false;但如果程序中加入了断点,想从程序中返回子窗体时有问题,在windows任务栏中找不到这项,即无法让新窗体再次显示

using System.Diagnostics /旅橡/命名空间

System.Diagnostics.Process.Start(@"C:\拆余旁Program Files (x86)\毁册Tencent\QQMusic\QQMusic.exe")

即 System.Diagnostics.Process.Start(@"填写软件路径")

本文介绍用C#在Winform中打开一个新进程,完成上述功能。using System.Diagnostics引用System.Diagnostics命名空间,该命名空间提供与系统进程、事件日志、性能计数器的交派迅哗互。其中与进程相关的两个基本的类是System.Diagnostics.Process和System.Diagnostics.ProcessStartInfo。1. System.Diagnostics.Procss:提供对本地和远程进程的访问并使您能够启动和停止本地系统进程(1) Start方法:启动进程,主要有如下参数设置a. Start( ProcessStartInfo )b. Start( string FileName )c. Start( string FileName, string Arguments )(2) 一些属性:a. Id:唯一进程标识号b. ProcessName:进程名称c. MachineName:进程运行所在的计算机名d. StartInfo:进程的StartInfoe. StartTime:启动进程的时间f. ExitTime:退出进程昌弊的时间g. HasExited:进程是否已经终止2. System.Diagnostics.ProcessStartInfo:与Process一起使用,为Process设置启动参数(1) 构造方法:a. ProcessStartInfo()b. ProcessStartInfo( string FileName )c. ProcessStartInfo( string FileName, string Arguments)(2) 一些属性:a. FileName:应用程序或文件名b. Arguments:参数c. WorkingDirectory:启动进程的初始目录d. CreateNoWindow:是否在尘行新窗口启动进程e. WindowStyle:指定打开窗口时的状态(枚举值)f. Verb:打开进程时需要使用的谓词;每个文件扩展名都有它自己的一组谓词;可以使用Verbs属性获取这些谓词。例如,“print”谓词将打印使用 FileName 指定的文档。可使用空字符串 ("") 指定默认谓词。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12244968.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存