C#,winform,怎样在一个页面显示前,首先先显示个等待提示?

2024-11-19 17:42:40
推荐回答(5个)
回答1:

简单的放上一张等待的GIF图片,然后提示等待,在执行备份前显示,备份好后影藏就好了

回答2:

先在Main方法里启动一个模式窗体用于显示进度条 把备份数据库的操作放到这个窗体上 记得开个线程来备份 这个窗体上放一张动态的图片就可以了 备份完以后模式窗体为OK 启动主窗体

回答3:

谢谢,偶自己搞定了,
1.在预备页面里显示进度条,用timer控制进度,如果进度条进度到最大,在从0开始.
在开个线程,功能是备份数据库,在备份数据库的方法里判断如果备份完了,开个线程显示登陆页面.
ok了,谢谢 rockeylau

回答4:

针对你的情况,我已经写了一个完整的程序,为了便于理解使用的是控制台程序,不过原理是一模一样的,只要改一下显示的方式,已经经过测试。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using System.Threading;

namespace Test
{
class Program
{
//标识备份是否完成
public static bool isComplete = false;

static void Main(string[] args)
{
//先备份数据库并显示等待信息
ShowWaitingInfo();
//开始运行主线程
//注意主线程与备份线程是并行的,因此主线程应该读取备份标识来判断是否开始运行
while (true)
{
if (!isComplete)
{
//未完成,等待一秒后继续判断知道完成
Thread.Sleep(1000);
}
else
{
break;//跳出循环
}
}
Console.WriteLine("主线程运行中...");
Console.ReadLine();
}

//显示等待信息
private static void ShowWaitingInfo()
{
Thread backup = new Thread(BackupDatabase);
backup.Start();
}

//备份数据库
public static void BackupDatabase()
{
isComplete = false;
//这里模拟备份需要5秒
Console.WriteLine("正在备份数据库,请稍后...");
Thread.Sleep(5000);
Console.WriteLine("备份完成!");
isComplete = true;
}
}
}

回答5:

针对你的情况,我已经写了一个完整的程序,为了便于理解使用的是控制台程序,不过原理是一模一样的,只要改一下显示的方式,已经经过测试。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using System.Threading;

namespace Test
{
class Program
{
//标识备份是否完成
public static bool isComplete = false;

static void Main(string[] args)
{
//先备份数据库并显示等待信息
ShowWaitingInfo();
//开始运行主线程
//注意主线程与备份线程是并行的,因此主线程应该读取备份标识来判断是否开始运行
while (true)
{
if (!isComplete)
{
//未完成,等待一秒后继续判断知道完成
Thread.Sleep(1000);
}
else
{
break;//跳出循环
}
}
Console.WriteLine("主线程运行中...");
Console.ReadLine();
}

//显示等待信息
private static void ShowWaitingInfo()
{
Thread backup = new Thread(BackupDatabase);
backup.Start();
}

//备份数据库
public static void BackupDatabase()
{
isComplete = false;
//这里模拟备份需要5秒
Console.WriteLine("正在备份数据库,请稍后...");
Thread.Sleep(5000);
Console.WriteLine("备份完成!");
isComplete = true;
}
}
}