我是靠谱客的博主 专注保温杯,最近开发中收集的这篇文章主要介绍Winform利用反射创建等待窗口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.首先创建一个WinForm窗体,可讲窗体的FormBorderStyle属性设置为"None",将窗体的标题栏去掉。窗体中可放一个PictureBox控件和两个Label控件。其中PictureBox控件存放加载等待的图片。一个Label控件可放置Text文本。

WinForm代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace Test
{
public partial class WaitForm : Form
{
public WaitForm()
{
InitializeComponent();
SetText("");
}
private delegate void SetTextHandler(string text);
public void SetText(string text)
{
if (this.label2.InvokeRequired)
{
this.Invoke(new SetTextHandler(SetText), text);
}
else
{
this.label2.Text = text;
}
}
}
}

2.新建一个类WaitFormService,代码如下

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace Test
{
public class WaitFormService
{
private Thread waitThread;
private WaitForm waitForm;
public static void CreateWaitForm()
{
WaitFormService.Instance.CreateForm();
}
public static void CloseWaitForm()
{
WaitFormService.Instance.CloseForm();
}
public static void SetWaitFormCaption(string text)
{
WaitFormService.Instance.SetFormCaption(text);
}
private static WaitFormService _instance;
private static readonly Object syncLock = new Object();
public static WaitFormService Instance
{
get
{
if (WaitFormService._instance == null)
{
lock (syncLock)
{
if (WaitFormService._instance == null)
{
WaitFormService._instance = new WaitFormService();
}
}
}
return WaitFormService._instance;
}
}
private WaitFormService()
{
}
public void CreateForm()
{
if (waitThread != null)
{
try
{
waitThread.Abort();
}
catch (Exception)
{
}
}
waitThread = new Thread(new ThreadStart(delegate()
{
waitForm = new WaitForm();
Application.Run(waitForm);
}));
waitThread.Start();
}
public void CloseForm()
{
if (waitThread != null)
{
try
{
waitThread.Abort();
}
catch (Exception)
{
}
}
}
public void SetFormCaption(string text)
{
if (waitForm != null)
{
try
{
waitForm.SetText(text);
}
catch (Exception)
{
}
}
}
}
}

3.调用如下:


try
{
WaitFormService.CreateWaitForm();
Assembly asmb = Assembly.GetExecutingAssembly();
WaitFormService.CloseWaitForm();
}
catch (Exception ex)
{
WaitFormService.CloseWaitForm();
}

最后

以上就是专注保温杯为你收集整理的Winform利用反射创建等待窗口的全部内容,希望文章能够帮你解决Winform利用反射创建等待窗口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部