栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > .Net

等待登录加载窗口

.Net 更新时间:发布时间: 百科书网 趣学号
登录窗口前的加载窗口展示

在登录窗口展示之前,先弹出个正在加载的窗口,等待登录窗口初始化完了后,加载窗口关闭,登录窗口show出来,主要是用于登录方式比较多,加载设备比较慢的情况。效果如下(忽略我的桌面)

首先做一个加载Form,看个人喜好了,

  1. 我用的是cskin的皮肤包,里面控件挺多的,感觉还挺好的,在nuget下载就可以
  2. 新建个form,Controlbox设置为false,formborderstyle设置为none,transparencykey设置个颜色,我这设置的是control颜色
  3. 拖个skinprogressbarindicate控件,背景色设置为和transparencykey的颜色一致,具体什么控件看自己想怎么设计了,这里主要是为了实现透明。
  4. 写一下这个加载窗体的代码,我直接拷贝一下代码吧,注意 关闭的时候要支持异步
 public LoginLoading(string Msg = "请稍等..")
{
    InitializeComponent();
    l_message.Text = Msg;
    pbi1.Location = new Point((this.Width - pbi1.Width) / 2, pbi1.Location.Y);
    var data = Encoding.Default.GetBytes(Msg);
    //字太多了就挡住转圈圈了
    var y = data.Count() > 8 ? l_message.Location.Y + pbi1.Height / 2 + 20 : l_message.Location.Y;
    l_message.Location = new Point((this.Width - l_message.Width) / 2, y);
}

/// 
/// 关闭loading窗口
/// 
public static void End()
{
    foreach (Form item in Application.OpenForms)
    {
        if (item.Name == nameof(LoginLoading))
        {
        //这里要注意下,要允许异步关掉
            if (item.InvokeRequired)
            {
                item.BeginInvoke(new Action(() => { item.Close(); }));
            }
            else
            {
                item.Close();
            }
            break;
        }
    }
}

其次,写一下Program的main方法
异步创建这个加载窗体,然后去实例化登录窗体,等实例化完毕后,再关掉这个加载窗体

static class Program
{
    /// 
    /// 应用程序的主入口点。
    /// 
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Task.Run(() =>
        {
            Application.Run(new LoginLoading());
        });
        Login login = new Login();
        LoginLoading.End();
        if (login.ShowDialog() == DialogResult.OK)
        {
            Application.Run(new Home());
        }
    }
}

OK 可以了

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/955675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号