想搞一个这样的效果Form1 上的一个按钮 点出来 Form2(带进度条的)然后它开始走进度 走完进度自动Dispose()Form1:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
}
Form2:
private void Form2_Load(object sender, EventArgs e)
{
processBar.Maximum = 100;
processBar.Minimum = 0;
for (int i = 0; i <= 100; i++)
{
processBar.Value = i;
Thread.Sleep(100);
}
this.Dispose();
}
没有效果啊?
大侠不要局限在我的思路里,如果有更好的进度条方法,请大侠指教
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
}
Form2:
private void Form2_Load(object sender, EventArgs e)
{
processBar.Maximum = 100;
processBar.Minimum = 0;
for (int i = 0; i <= 100; i++)
{
processBar.Value = i;
Thread.Sleep(100);
}
this.Dispose();
}
没有效果啊?
大侠不要局限在我的思路里,如果有更好的进度条方法,请大侠指教
{
processBar.Value = i;
Thread.Sleep(100);
Application.DoEvent();
}
{
Form2 f = new Form2();
f.Show();
f.BringToFront();
}
private void Form2_Load(object sender, EventArgs e)
{
processBar.Maximum = 100;
processBar.Minimum = 0;
// for (int i = 0; i <= 100; i++)
// {
// processBar.Value = i;
// Thread.Sleep(100);
// }
// this.Dispose();
}
不然你叫那个bar怎么自己更新自己的状态呢
{
processBar.Maximum = 100;
processBar.Minimum = 0;
for (int i = 0; i <= 100; i++)
{
processBar.Value = i;
Thread.Sleep(100);
}
this.Dispose();
} 这个是不行的,刚load完就dispose了~
{
processBar.Maximum = 100;
processBar.Minimum = 0;
for (int i = 0; i <= 1000000; i=i+1000)
{
processBar.Value = i;
Thread.Sleep(100);
}
this.Dispose();
}
相当于单独起个线程。界面不会出现死掉的情况。
能满足基本需求,学起来也很easy。
for (int i = 0; i <= 1000000; i=i+1000) 都什么啊,拉倒吧
{
new Thread(new ThreadStart(KKK)).Start();
KKK();
}
public delegate void DaiLi();
public void KKK()
{
if (this.InvokeRequired)
{
DaiLi d = new DaiLi(KKK);
this.Invoke(d);
}
else
{
processBar.Maximum = 100;
processBar.Minimum = 0;
for (int i = 0; i <= 100; i++)
{
processBar.Value = i;
Thread.Sleep(100);
}
this.Dispose();
}
}
用这个,采用异步的方式
但是这样的效果不理想,老卡吧卡吧地(拖动窗口的时候)
除了楼上两个大侠的链接(还一样的),哪位大侠搞过建设性,有心得的,牛叉的,进度条大侠分享下啊
给自己顶一下。backgroundwork很实用
LZ可以参考下
好心给你回答,你还拉到吧,就算说的不对也不能这样啊
再说我也没说错啊,
form_load 是干什么的,楼主这个都还没搞清楚~
Form1:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.Show();
}
Form2:
private void Form2_Load(object sender, EventArgs e)
{
timer1.Enabled=true;
} private void Timer1_Tick(object sender,EventArgs e)
{
Timer1.Enabled=false; processBar.Maximum = 100;
processBar.Minimum = 0;
for (int i = 0; i <= 100; i++)
{
processBar.Value = i;
Thread.Sleep(100);
}
this.Dispose();
}
private void Form3_Activated(object sender, EventArgs e)
{
processBar.Maximum = 100;
processBar.Minimum = 0;
for (int i = 0; i <= 100; i++)
{
processBar.Value = i;
System.Threading.Thread.Sleep(100);
Application.DoEvents();
}
}