110,534
社区成员
发帖
与我相关
我的任务
分享
//写这个类,目的是实现两个LABEL共用,两个LABEL显示两个方法的进度情况
public class Label_timer
{
System.Timers.Timer timer=new System.Timers.Timer();
public Label label;
public string strDefault="";
public bool Is_stop = false;
int nRepeatCount = 0;
public bool Is_login = false;
public Label_timer(Label label,string str)
{
strDefault = str;
this.label = label;
timer.Interval = 300;
//timer.Elapsed += new System.EventHandler(timer_Tick);
timer.Elapsed += new ElapsedEventHandler(timer_Tick);
timer.Enabled = true;
//timer.Start();
}
public void Monitor()
{
if (!Is_stop)
{
nRepeatCount++;
if (nRepeatCount > 4)
{
nRepeatCount = 0;
label.BeginInvoke(new MethodInvoker(delegate() { label.Text = strDefault; }));
}
else
{
label.BeginInvoke(new MethodInvoker(delegate() { label.Text += "."; }));
}
}
else
{
if (Is_login)
{
label.BeginInvoke(new MethodInvoker(delegate() { label.Text = strDefault + "成功"; }));
//timer.Elapsed -= new System.EventHandler(timer_Tick);
}
else
{
label.BeginInvoke(new MethodInvoker(delegate() { label.Text = strDefault + "失败"; }));
//timer.Elapsed -= new System.EventHandler(timer_Tick);
}
timer.Stop();
}
}
void timer_Tick(object sender, System.EventArgs e)
{
Thread threadMonitor = (new Thread(new ThreadStart(Monitor)));
threadMonitor.Start();
}
}
//调用:
private void button2_Click(object sender, EventArgs e)
{
this.Hide();//当前页隐藏
Label_timer lt=new Label_timer(Form2.CreatForm2().label1, "连接数据库");
//操作FORM2页中的LABEL进度显示
class1().Login();//目标程序登录
if (class1().a.login)//判断登录是否成功
{
lt.Is_login = true;
}
else
{
lt.Is_login = false;
}
lt.Is_stop = true;
}