111,126
社区成员
发帖
与我相关
我的任务
分享using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
frmProgressbar frm=null;
[BrowsableAttribute(false)]
public static bool CheckForIllegalCrossThreadCalls { get; set; }
public Form1()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls=false ;
}
private void Form1_Load(object sender, EventArgs e)
{
Button btn = new Button { Text = "Test" };
btn.Click += fun;
this.Controls.Add(btn);
}
private void fun(object sender, EventArgs e)
{
frm = new frmProgressbar { Visible = true };
System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(fun));
th.Start();
}
private void fun()
{
System.Threading.Thread.Sleep(10000);
if (frm!=null) frm.Close();
}
}
public class frmProgressbar : System.Windows.Forms.Form
{
private ProgressBar probar;
private Timer tmr;
public frmProgressbar()
{
probar = new ProgressBar();
this.Controls.Add(probar);
tmr = new Timer { Interval = 200 };
tmr.Tick += tick;
tmr.Start();
}
private void tick(object sender, EventArgs e)
{
if (probar.Value < probar.Maximum)
{
probar.Value += 1;
}
else
{
probar.Value = probar.Minimum;
}
this.Text = probar.Value.ToString();
}
}
}
publiceventDoWorkEventHandler DoWork;//异步处理代码
publiceventProgressChangedEventHandler ProgressChanged;//处理进度汇报,同UI交互
publiceventRunWorkerCompletedEventHandler RunWorkerCompleted;//结束处理通知

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Button btn = new Button { Text = "Test" };
btn.Click += fun;
this.Controls.Add(btn);
}
private void fun(object sender, EventArgs e)
{
using (frmProgressbar frm = new frmProgressbar { Visible = true })
{
for (int i = 0; i <= 100; i++)
{
this.Text = string.Format("{0}ms", i * 100);
Application.DoEvents();
System.Threading.Thread.Sleep(100);
}
}
}
}
public class frmProgressbar : System.Windows.Forms.Form
{
private ProgressBar probar;
private Timer tmr;
public frmProgressbar ()
{
probar = new ProgressBar();
this.Controls.Add(probar);
tmr = new Timer { Interval = 200 };
tmr.Tick += tick;
tmr.Start();
}
private void tick(object sender, EventArgs e)
{
if (probar.Value < probar.Maximum) {
probar.Value += 1;
}
else {
probar.Value = probar.Minimum;
}
this.Text = probar.Value.ToString();
}
}
}