C#怎么实现主窗口显示结束后显示一个系统初始化窗口

qingbt 2010-12-01 11:15:35
我想显示结束主窗口后再显示一个系统初始化提示窗口,里面显示连接数据库状态等信息,不知道在怎么位置用什么办法显示。
...全文
398 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
SunnyBoy 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jointan 的回复:]
9楼的方法,由于用到的线程,由于主窗口已显示,可能会导致线程结束前,用户已经操作了应该在初始化结束后才可以操作的事.增加代码的控制难度.
[/Quote]
赞同14楼的说法!
jointan 2010-12-01
  • 打赏
  • 举报
回复
9楼的方法,由于用到的线程,由于主窗口已显示,可能会导致线程结束前,用户已经操作了应该在初始化结束后才可以操作的事.增加代码的控制难度.
jointan 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qingbt 的回复:]
等主窗口显示成功后弹出一个小窗口,显示系统关键初始化操作的进度。不好意思,表达能力有限。
[/Quote]
如果要在主窗口显示成功后显示窗口那么应该在Main方法中如下启动主窗口:

FormMain frmMain=new FormMain();
frmMain.Show();
frmMain.Update();
using(X x=new X(new FormLogo()))
{
//初始化代码.
}
qingbt 2010-12-01
  • 打赏
  • 举报
回复
谢谢9楼,达到要求
jointan 2010-12-01
  • 打赏
  • 举报
回复
显示初始化过程的窗口不应该用ShowDialog,而应该用Show,因为用ShowDialog如果你是把初始过的过程写在Dialog中,那么,Dialog中无法控制初始化过程的启动时间,或者说,没有一个事件适合启动初始化过程,如果写在Dialog外,那么,在这个Dialog关闭前,你的初始化语句一句都不会执行,起不到任何作用.

我的方法是,写一个实现IDisposable的类,在构造函数中,启动初始化显示窗口,在 Dispose 方法中,关闭该窗口
class X:IDisposable
{
private Form m_Frm;
public X(Form frm)
{
m_Frm=frm;
frm.Show();
}

public void Dispose ()
{
frm.Close():
}
}


然后在主窗口的构造函数中:
using(X x=new X())
{
//.....
//初始化过程.
}
qingbt 2010-12-01
  • 打赏
  • 举报
回复
等主窗口显示成功后弹出一个小窗口,显示系统关键初始化操作的进度。不好意思,表达能力有限。
colorall 2010-12-01
  • 打赏
  • 举报
回复

//Form1:主窗口,Form2初始化窗口
Form2 f2;
private void Form1_Load(object sender, EventArgs e)
{
f2 = new Form2();
f2.Owner = this;
f2.Show();
Thread t = new Thread(InitializeDataBase);
t.Start();
}
void InitializeDataBase()
{
int i = 0;
//这里模仿初始化耗时工作
while (i < 100)
{
Thread.Sleep(100);
i++;
}

this.Invoke(new ThreadStart(delegate { f2.Close(); }));
}


wuyq11 2010-12-01
  • 打赏
  • 举报
回复
login frmlogin = new login();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new main_form());
}
Thread th = new Thread(new ThreadStart(new MethodInvoker(delegate
{
this.Invoke(new MethodInvoker(delegate { this.Close(); }));
Application.Run(new FormSET());
})));
th.Start();
ZengHD 2010-12-01
  • 打赏
  • 举报
回复
private void Form1_Shown(object sender, EventArgs e)
{
Form frm = new Form();
frm.ShowDialog();
}
jointan 2010-12-01
  • 打赏
  • 举报
回复
你的意思应该是登录窗口关闭后,显示初始化窗口,初始化窗口随初始化过程完成而关闭,显示主窗口吧
兔子-顾问 2010-12-01
  • 打赏
  • 举报
回复
FormWait frm = new FormWait();
frm.Closed += (EventHandler)delegate
{
this.Show();
};
frm.Show();
this.Hide();
wuyq11 2010-12-01
  • 打赏
  • 举报
回复
this.Hide()
弹出设置窗体
Form frmset= new Form();
frmset.ShowDialog();
ZengHD 2010-12-01
  • 打赏
  • 举报
回复
我想显示结束主窗口后
不知道是你的语句有歧义,还是我理解有问题
qingbt 2010-12-01
  • 打赏
  • 举报
回复
软件刚开始运行,怎么能用closed呢
ZengHD 2010-12-01
  • 打赏
  • 举报
回复
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
this.Hide();
Form frm = new Form();
frm.ShowDialog();
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧