使用方法
private Zgke.WindowFrom.Window.Controls.LoadLoginingImage a = new Zgke.WindowFrom.Window.Controls.LoadLoginingImage();
private void Form2_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
a.Show(Image.FromFile(@"c:/1.BMP"));
for (int i = 0; i != 1000000; i++)
{
for (int z = 0; z != 1000; z++)
{
}
}
a.Hide();
}
下面是全部代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Drawing;
namespace Zgke.WindowFrom.Window.Controls
{
/// <summary>
/// 显示等待窗体
/// zgke@sina.com
/// qq:116149
/// </summary>
public class LoadLoginingImage
{
private FormStartPosition m_StarPaint = FormStartPosition.CenterScreen;
/// <summary>
/// 开始置
/// </summary>
public FormStartPosition StarPaint
{
get { return m_StarPaint; }
set { m_StarPaint = value; }
}
private Thread m_Thread;
/// <summary>
/// 私有方法 如果需要改动样式就改动这里
/// </summary>
/// <param name="p_Image"></param>
private void ShowLoginingForm(object p_Image)
{
lock (p_Image)
{
Image _SetImage = (Image)p_Image;
Form _Form = new Form();
_Form.FormBorderStyle = FormBorderStyle.None;
_Form.StartPosition = StarPaint;
_Form.Size = _SetImage.Size;
_Form.BackgroundImage = _SetImage;
_Form.TopMost = true;
_Form.Show();
while (true)
{
Application.DoEvents();
}
}
}
/// <summary>
/// 显示图形
/// </summary>
/// <param name="p_Image"></param>
public void Show(Image p_Image)
{
if (p_Image == null) return;
m_Thread = new Thread(new ParameterizedThreadStart(ShowLoginingForm));
m_Thread.Start(p_Image);
}
/// <summary>
/// 隐藏图形
/// </summary>
public void Hide()
{
m_Thread.Abort();
}
}
}