精华内容
下载资源
问答
  • winform loading加载框效果,有渐变层,方便实用,亲测可用使用
  • 1,LoaderForm窗体中添加PictureBox,然后添加Loading图片 2,窗体内属性设置 StartPosition :CenterScreen在屏幕中心显示 TopMost:True置顶显示 ShowInTaskbar:False不在任务栏显示 FormBorderStyle:None不...

    1,LoaderForm窗体中添加PictureBox,然后添加Loading图片

    2,窗体内属性设置

    StartPosition :CenterScreen在屏幕中心显示

    TopMost:True置顶显示

    ShowInTaskbar:False不在任务栏显示

    FormBorderStyle:None不显示窗体边框和标题栏

    TransparencyKey:Control颜色为Control的部分透明

    BackColor:Control窗体背景颜色设为Control

     

    3,调用:

    LoadingHelper.ShowLoadingScreen();//显示
    LoadingHelper.CloseForm();//关闭

     

     

    4,显示效果如下:

    5,LoaderForm和LoadingHelper部分代码如下,ref:https://www.cnblogs.com/morewindows0/p/7107599.html

    LoaderForm:

     public partial class LoaderForm : Form
        {
            public LoaderForm()
            {
                InitializeComponent();
            }
     
            /// <summary>
            /// 关闭命令
            /// </summary>
            public void closeOrder()
            {
                if (this.InvokeRequired)
                {
                    //这里利用委托进行窗体的操作,避免跨线程调用时抛异常,后面给出具体定义
                    CONSTANTDEFINE.SetUISomeInfo UIinfo = new CONSTANTDEFINE.SetUISomeInfo(new Action(() =>
                    {
                        while (!this.IsHandleCreated)
                        {
                            ;
                        }
                        if (this.IsDisposed)
                            return;
                        if (!this.IsDisposed)
                        {
                            this.Dispose();
                        }
     
                    }));
                    this.Invoke(UIinfo);
                }
                else
                {
                    if (this.IsDisposed)
                        return;
                    if (!this.IsDisposed)
                    {
                        this.Dispose();
                    }
                }
            }
     
            private void LoaderForm_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (!this.IsDisposed)
                {
                    this.Dispose(true);
                }
     
            }
        }
        class CONSTANTDEFINE
        {
            public delegate void SetUISomeInfo();
        }
    LoadingHelper:

      public class LoadingHelper
        {
             #region 相关变量定义
           /// <summary>
           /// 定义委托进行窗口关闭
           /// </summary>
           private delegate void CloseDelegate();
           private static LoaderForm loadingForm;
           private static readonly Object syncLock = new Object();  //加锁使用
     
            #endregion
     
            //private LoadingHelper()
            //{
     
            //}
     
            /// <summary>
            /// 显示loading框
            /// </summary>
            public static void ShowLoadingScreen()
            {
                // Make sure it is only launched once.
                if (loadingForm != null)
                    return;
                Thread thread = new Thread(new ThreadStart(LoadingHelper.ShowForm));
                thread.IsBackground = true;
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();
     
            }
     
            /// <summary>
            /// 显示窗口
            /// </summary>
            private static void ShowForm()
            {
                if (loadingForm != null)
                {
                    loadingForm.closeOrder();
                    loadingForm = null;
                }
                loadingForm = new LoaderForm();
                loadingForm.TopMost = true;
                loadingForm.ShowDialog();
            }
     
            /// <summary>
            /// 关闭窗口
            /// </summary>
            public static void CloseForm()
            {
                Thread.Sleep(50); //可能到这里线程还未起来,所以进行延时,可以确保线程起来,彻底关闭窗口
                if (loadingForm != null)
                {
                    lock (syncLock)
                    {
                        Thread.Sleep(50);  
                        if (loadingForm != null)
                        {
                            Thread.Sleep(50);  //通过三次延时,确保可以彻底关闭窗口
                            loadingForm.Invoke(new CloseDelegate(LoadingHelper.CloseFormInternal));
                        }
                    }
                }
            }
     
            /// <summary>
            /// 关闭窗口,委托中使用
            /// </summary>
            private static void CloseFormInternal()
            {
     
                loadingForm.closeOrder();
                loadingForm = null;
     
            }
     
        }
     

    展开全文
  • winform的一个简单易用异步加载等待效果,调用方式: this.AsyncWaitDo(delegate{ //异步等待操作}, delegate{//回调操作}); this是要进行异步等待的窗体
  • winform遮罩层loading

    2014-01-14 16:11:06
    winform窗体嵌套,loading,遮罩层实现,progressbar控件。
  • winform loading效果:加载进度的例子(自动关闭)。
  • winform Loading

    2021-03-24 16:56:07
    winform 耗时方法加载loading等待
  • 在桌面程序编程中,我们经常需要执行耗时较长的代码。为了良好的用户体验,仿照win10加载动画,实现了Loading时异步处理耗时代码。
  • winform loading

    2018-09-18 12:00:57
    winform loading
  • 主要介绍了Winform圆形环绕的Loading动画实现代码,有需要的朋友可以参考一下
  • 如图需要执行某个方法弹出等待窗口,方法执行完成后窗体自动... public Thread Loading(LoadingForm f) { System.Threading.Thread th; th = new Thread(new ThreadStart(delegate () { f.ShowDialog(); }));

    如图需要执行某个方法弹出等待窗口,方法执行完成后窗体自动关闭

     public Thread Loading(LoadingForm f)
            {
    
                System.Threading.Thread th;
    
                th = new Thread(new ThreadStart(delegate ()
                {
                    f.ShowDialog();
                }));
                th.Start();
                return th;
            }

    设计一个弹出窗体,放一个pictureBox将Image属性放一个gif图片,然后将窗体设置透明,

     public partial class LoadingForm : Form
        {
            public LoadingForm()
            {
                InitializeComponent();
                this.BackColor = Color.White; this.TransparencyKey = Color.White;//设置窗体透明
            }
        }

    在线程中定义和打开等待窗口,把线程作为参数传入方法中,在方法执行完毕后使用线程的销毁操作实现等待窗口的关闭。

    调用方法

                        LoadingForm f = new LoadingForm();//
                        Thread th = Loading(f); 
                        Methods();//要执行的方法
                        f.Close();
                        th.Abort(); 

     

    展开全文
  • WinForm】加载等待界面Loading

    千次阅读 2019-08-07 11:18:33
    /// Loading界面 /// private static Form frm = null; private static ILoad iLoad; /// /// 显示加载界面 /// /// <param name="frmType"></param> public static void Show(Type frmType) { if ...

    首先定义一个加载界面接口,在加载界面可以实现该接口

    /// <summary>
    /// 加载界面接口
    /// </summary>
    public interface ILoad
    {
        /// <summary>
        /// 设置加载状态
        /// </summary>
        void SetState(string state);
    }
    

    加载界面控制

    /// <summary>
    /// 加载界面控制
    /// </summary>
    public class LoadController
    {
        /// <summary>
        /// Loading界面
        /// </summary>
        private static Form frm = null;
        private static ILoad iLoad;
    
        /// <summary>
        /// 显示加载界面
        /// </summary>
        /// <param name="frmType"></param>
        public static void Show(Type frmType)
        {
            if (frmType == null) return;
    
            Task.Factory.StartNew(() =>
            {
                object obj = Activator.CreateInstance(frmType);
    
                frm = obj as Form;
                iLoad = obj as ILoad;
    
                Application.Run(frm);
            });
        }
    
        /// <summary>
        /// 设置加载状态
        /// </summary>
        public static string State
        {
            set
            {
                if (frm == null || iLoad == null) return;
                if (frm.InvokeRequired)
                    frm.Invoke(new Action<string>((str)=> 
                    {
                        iLoad.SetState(str);
                    }),value);
            }
        }
    
        /// <summary>
        /// 关闭加载界面
        /// </summary>
        public static void Close()
        {
            if (frm == null) return;
            if (frm.InvokeRequired)
                frm.Invoke(new MethodInvoker(frm.Hide));
        }
    }

    加载界面实现接口

    /// <summary>
    ///  加载界面
    /// </summary>
    public partial class FrmLoading : Form, ILoad
    {
        public FrmLoading()
        {
            InitializeComponent();
            CheckForIllegalCrossThreadCalls = false;
        }
    
        /// <summary>
        /// 加载状态
        /// </summary>
        /// <param name="state"></param>
        public void SetState(string state)
        {
            lbState.Text = state;
        }
    
        private void FrmLoading_Load(object sender, EventArgs e)
        {
            rollingBar.StartRolling();
        }
    
        private void FrmLoading_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit(); 
        }
    }

    在FrmLoading_Load中可以实现加载效果

    在主界面设置加载状态

    private void FrmMain_Load(object sender, EventArgs e)
    {
        LoadController.State = "正在加载...";
        Thread.Sleep(500);
    
        //这里放一些比较耗时的操作
    
        LoadController.State = "加载完成...";
        Thread.Sleep(500);
    
        //关闭加载界面
        LoadController.Close();
    }
    

    最后在Program.cs中,先加载Loading界面

    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDe
    
        LoadController.Show(typeof(FrmLoading));
        Application.Run(new FrmMain());
    }
    

    记得在Main窗体启动前加载Loading

     

    展开全文
  • WinForm下的loading框的实现

    千次阅读 2019-02-25 19:52:10
    前言:在项目使用C/S模式情况下,由于需要经常进行数据的刷新,如果直接进行刷新,会有一个等待控件重画的过程,非常的不友好,因此在这里添加一个loading框进行等待显示。 实现:在经过多方面查询资料,终于是实现...

    原文链接:https://www.cnblogs.com/morewindows0/p/7107599.html
    前言:在项目使用C/S模式情况下,由于需要经常进行数据的刷新,如果直接进行刷新,会有一个等待控件重画的过程,非常的不友好,因此在这里添加一个loading框进行等待显示。

    实现:在经过多方面查询资料,终于是实现了一个完整的loading框程序,这里主要解决在多次点击查询按钮或者加载数据时出现的:执行 CreateHandle() 时无法调用值 Close()或者无法访问已释放的对象或者在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。这三个问题困扰我很久,最终通过不断的调试,将其解决,话不多说,直接上代码。
    1.下面类为loading框帮助类,在实际调用过程中,使用该类调用相关函数即可。
    class LoadingHelper
    {
    #region 相关变量定义
    ///
    /// 定义委托进行窗口关闭
    ///
    private delegate void CloseDelegate();
    private static LoaderForm loadingForm;
    private static readonly Object syncLock = new Object(); //加锁使用

        #endregion
    
        private LoadingHelper()
        {
    
        }
    
        /// <summary>
        /// 显示loading框
        /// </summary>
        public void ShowLoadingScreen()
        {
            // Make sure it is only launched once.
            if (loadingForm != null)
                return;
            Thread thread = new Thread(new ThreadStart(LoadingHelper.ShowForm));
            thread.IsBackground = true;
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
    
        }
    
        /// <summary>
        /// 显示窗口
        /// </summary>
        private static void ShowForm()
        {
            if (loadingForm != null)
            {
                loadingForm.closeOrder();
                loadingForm = null;
            }
            loadingForm = new LoaderForm();
            loadingForm.TopMost = true;
            loadingForm.ShowDialog();
        }
    
        /// <summary>
        /// 关闭窗口
        /// </summary>
        public void CloseForm()
        {
            Thread.Sleep(50); //可能到这里线程还未起来,所以进行延时,可以确保线程起来,彻底关闭窗口
            if (loadingForm != null)
            {
                lock (syncLock)
                {
                    Thread.Sleep(50);  
                    if (loadingForm != null)
                    {
                        Thread.Sleep(50);  //通过三次延时,确保可以彻底关闭窗口
                        loadingForm.Invoke(new CloseDelegate(LoadingHelper.CloseFormInternal));
                    }
                }
            }
        }
    
        /// <summary>
        /// 关闭窗口,委托中使用
        /// </summary>
        private static void CloseFormInternal()
        {
    
            loadingForm.closeOrder();
            loadingForm = null;
    
        }
    
    }
    2.LoaderForm窗体具体代码如下。
    public partial class LoaderForm : Form
    

    {
    public delegate void SetUISomeInfo();
    public LoaderForm()
    {
    InitializeComponent();
    }
    ///
    /// 关闭命令
    ///
    public void closeOrder()
    {
    if (this.InvokeRequired)
    {
    //这里利用委托进行窗体的操作,避免跨线程调用时抛异常,后面给出具体定义
    SetUISomeInfo UIinfo = new SetUISomeInfo(new Action(() =>
    {
    while (!this.IsHandleCreated)
    {
    ;
    }
    if (this.IsDisposed)
    return;
    if (!this.IsDisposed)
    {
    this.Dispose();
    }
    }));
    this.Invoke(UIinfo);
    }
    else
    {
    if (this.IsDisposed)
    return;
    if (!this.IsDisposed)
    {
    this.Dispose();
    }
    }
    }
    private void LoaderForm_FormClosing(object sender, FormClosingEventArgs e)
    {
    if (!this.IsDisposed)
    {
    this.Dispose(true);
    }
    }
    }

    展开全文
  • C# WinForm Loading界面

    2021-05-10 11:36:53
    调用 LoadingHelper.ShowLoadingScreen();//显示 LoadingHelper.CloseForm();//关闭 代码 ...using System.Windows.Forms;... public partial class Form_Loading : Form ... public Form_Loading()
  • winform Loading效果

    2017-12-18 16:52:00
    winform项目时,有可能用到异步耗时加载数据啥的,这个时候就需要我们封装一个正在加载的效果。下面是实现思路: 步骤一:把当前form界面使用句柄的方式截图出一个图片,这个图片会在下面用到,使用句柄获取截图...
  • C# winform简单易用的异步加载Loading效果.rarC# winform简单易用的异步加载Loading效果.rarC# winform简单易用的异步加载Loading效果.rarC# winform简单易用的异步加载Loading效果.rarC# winform简单易用的异步加载...
  • 为了良好的用户体验,仿照win10加载动画,实现了Loading时异步处理耗时代码。借鉴了网上两个Demo,整理后实现了较好效果,先来看效果图。 资源下载:https://download.csdn.net/download/weixin_39237340/15614132 先...
  • Winform圆形环绕的Loading动画

    千次阅读 2014-01-20 15:57:46
    Winform中添加Loading动画
  • C# Winform 加载等待

    2017-09-15 12:00:06
    c# winform 解决加载数据时间过长时,提供等待界面。 loadWaitting = new PPSLoading(); loadWaitting.Name = "LoadWaitting1"; this.Controls.Add(loadWaitting); this.loadWaitting.Dock = DockStyle.Fill; ...
  • Winform Loading控件

    热门讨论 2010-12-16 23:14:03
    Winform Loading控件,类似GIF的loading效果。 解压密码:www.lwolf.cn
  • winform加载等待界面

    2018-06-05 11:31:10
    使用C#语言编写的winform加载界面,能直接复制进自己的项目中使用。
  • 为了良好的用户体验,仿照win10加载动画,实现了Loading时异步处理耗时代码。借鉴了网上两个Demo,整理后实现了较好效果,先来看效果图。 先实现了异步开启执行工作任务,然后展示加载动画,待任务执行完毕,...
  • 在主线程中做大量数据处理时,会造成整个...这里采用:将后台处理数据的逻辑放到子线程中,再通过子线程中的委托告知主线程处理情况,再在主线程中对页面的控件进行处理,可以实现loading条,进度条等的友好交互效果。
  • WinformLoading 美化 皮肤 控件 窗体WinformLoading 美化 皮肤 控件 窗体WinformLoading 美化 皮肤 控件 窗体WinformLoading 美化 皮肤 控件 窗体
  • c# 防winform10加载效果。如果需要请下载,适合使用场景:当点击某个按钮时,需要弹出一个等待中或者是加载中的效果
  • winform 自定义控件:半透明Loading控件 by wgscd date:2015-05-05 效果: using System;using System.Drawing;using System.Windows.Forms;using System.ComponentModel;using System.Threading; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,044
精华内容 417
关键字:

loadingwinform