等待窗体
主窗体form1 ,等待窗体 form2.form1按纽 button1.
buttun1单击事件如下.
1显示form2
2大量的计算
3计算结束 自动关闭form2
请问上面的过程应该如何实现.
我的程序在显示form2 时,form2中写有"计算中"的label 无法显示. --------------------编程问答-------------------- 猜测问题在于你的计算线程和UI线程是一个吧,建议你的计算过程单起一个线程试试,form2应该就可以正常显示了吧 --------------------编程问答-------------------- public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btn_WaitForm_Click(object sender, EventArgs e)
{
WaitForm frmWait = new WaitForm();
frmWait.Show();
}
}
public delegate void InvokeDelegate();
public partial class WaitForm : Form
{
protected System.Timers.Timer timer;
protected DateTime start;
protected int counter;
public WaitForm()
{
InitializeComponent();
timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Enabled = true;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
start = DateTime.Now;
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
InvokeDelegate update = delegate()
{
counter++;
if (((TimeSpan)(DateTime.Now - start)).Seconds == 10) this.Close();
else
{
if (counter > 4) counter = 1;
this.lbl_InfoValue.Text = "I'm doing the Calculation, Waiting" + "".PadLeft(counter, '.');
}
};
if (!this.IsDisposed)
this.Invoke(update);
}
} --------------------编程问答-------------------- 不好意思,我是新手楼上的例子我没调试好,提示无效的delegate().两外一楼的朋友可否举个具体了例子如何用线程实现我的功能?
谢谢! --------------------编程问答-------------------- 完美等待窗体
参考我下载空间,完美的等待窗体,一行代码搞定。。。。。。。。。。哈哈哈
自我吹嘘一下,非常简单
││博客空间:http://blog.csdn.net/lovingkiss
││资源下载:http://download.csdn.net/user/lovingkiss
││Email:loving-kiss@163.com [MSN也是这个]
││联系方式:Q66840199 项目、聊天、咨询、探讨、统统收费,呵呵......
╚---------------------------------------------------------------------------------------------------------ō*︻$▅▆▇◤ --------------------编程问答-------------------- 实际上,等待窗体制作的难度,在于:
1、如何使用ShowDialog()不影响主线程的动作;
2、如何随时切换主线程、进度线程的动作、进度;
3、如何用最少的线程和代码来实现它;
。。。。
所以这就是我开发这套组件的初衷。。。
补充:.NET技术 , C#