美文网首页
C# winform 等待窗体

C# winform 等待窗体

作者: ZoneWonderful | 来源:发表于2018-04-10 16:48 被阅读0次

为提升用户体验,改造了一下原作者的东西 (样式没变,抽取了有用的代码)
改造前:

改造前.png

改造后 :

改造后.png

代码也挺简单的

 public partial class Loadding : Form
    {
        private IAsyncResult _AsyncResult;
        private EventHandler<EventArgs> _Method;
        public Loadding()
        {
            InitializeComponent();
        }
        public Loadding(EventHandler<EventArgs> method)
        {
            InitializeComponent();
            _Method = method;

        }
        private static Loadding load = null;
        public static Loadding getInstance(EventHandler<EventArgs> method)
        {
            if (load == null || load.IsDisposed)
            {
                load = new Loadding(method);
            }
            return load;
        }

        private void OnShown(object sender, EventArgs e)
        {
            if (Win32.AnimateWindow(this.Handle, 100, Win32.AW_ACTIVATE | Win32.AW_VER_POSITIVE | Win32.AW_A))
            {
                //上到下特效显示  
                Win32.AnimateWindow(this.Handle, 100, Win32.AW_ACTIVATE);
            }
            _AsyncResult = _Method.BeginInvoke(null, null, null, null);
        }
        private void FormClose(object sender, EventArgs e)
        {
            if (Win32.AnimateWindow(this.Handle, 100, Win32.AW_HIDE | Win32.AW_VER_POSITIVE | Win32.AW_A))
            {
                //上到下特效显示  
                Win32.AnimateWindow(this.Handle, 100, Win32.AW_HIDE);
            }
        }
        private void _Timer_Tick(object sender, EventArgs e)
        {
            if (_AsyncResult.IsCompleted)
            {
                this.Close();
            }
        }
    }

调用:

Loadding l =Loadding.getInstance((obj, args) =>{
            // 进行相关的逻辑 请求网络等等   
            
  });
    l.ShowDialog();

相关的东西挺简单的,如有兴趣,请去 原作者 博客查看

相关文章

  • C# winform 等待窗体

    为提升用户体验,改造了一下原作者的东西 (样式没变,抽取了有用的代码)改造前: 改造后 : 代码也挺简单的 调...

  • 2019-03-26居中

    C# winform解决解决窗体第一次设置为最大化后,点击最大化按钮窗体无法居中问题...

  • Winform

    C# WinForm实践开发教程 C# WinForm实践开发教程——第一章 Windows编程基础C# WinF...

  • 解决 C# Winform Button 按了Tab后 会出现黑

    C# Winform Button按钮问题 C# Winform的 Button,大部分会选择 flat 样式,但...

  • WinForm跨线程UI操作常用控件类大全

    前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作。不过会有一个问题:...

  • dataGridView的使用

    C# — WinForm DataGridView篇 最近用C#的winform开发了一个项目,从中积累了一些各个...

  • C# WinForm 与Flash 交互操作

    C# WinForm 与Flash 交互操作 要在 WinForm 中使用 Flash,通常需要用到 Shockw...

  • 解决 C# Winform 窗体打开时闪烁问题

    这个问题属于必须解决的问题,而且界面的控件越多,闪烁也越多,试过多种解决办法效果都不理想。 解决办法:把此段代码加...

  • C# NotifyIcon的使用

    | C# NotifyIcon的使用 一、winform 中添加 timer 、contextMenuStri...

  • 11月2日四期C#总结

    今天我们学习了第四章的WinForm、窗口的基本控件、窗体、委托。 Form类定义了窗体的基本属性和行为 ...

网友评论

      本文标题:C# winform 等待窗体

      本文链接:https://www.haomeiwen.com/subject/rvenhftx.html