当我点窗体上的Upload, Upload所做的如下private void Upload()
{
Cursor.Current = Cursors.WaitCursor;
bool bRet = setting.UpLoad();//这边调用的控件中Upload函数
Cursor.Current = Cursors.Default;
if(bRet)
MessageBox.Show("Upload Success", "Message");
else
MessageBox.Show("Upload Fail", "Message");
}现在所要做的是,如何把控件中Upload的进度显示在另一个Form的ProgressBar上希望不要只跟我说多线程,也知道是要多线程来实现委托的话,要如何传值,希望给个简单的Code.
{
Cursor.Current = Cursors.WaitCursor;
bool bRet = setting.UpLoad();//这边调用的控件中Upload函数
Cursor.Current = Cursors.Default;
if(bRet)
MessageBox.Show("Upload Success", "Message");
else
MessageBox.Show("Upload Fail", "Message");
}现在所要做的是,如何把控件中Upload的进度显示在另一个Form的ProgressBar上希望不要只跟我说多线程,也知道是要多线程来实现委托的话,要如何传值,希望给个简单的Code.
Form1using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace Upload//此处改成你自己的命名空间
{
public partial class Form1 : Form
{
public delegate void UploadHandler(object sender, EventNumber e);
public event UploadHandler EventUpLoad;
//定义一个Timer,用以演示Upload方法
Timer timer1;
int value;
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
value = 0;
timer1 = new Timer();
timer1.Interval = 1000;
timer1.Start();
timer1.Tick += new EventHandler(timer1_Tick);
Form2 f2 = new Form2(this);
f2.Show();
}
void timer1_Tick(object sender, EventArgs e)
{
value++;
if (value < 100)
{
EventNumber en = new EventNumber(value);
EventUpLoad(this, en);//触发事件
}
else
value = 0;
}
} /// <summary>
/// 定义一个事件数据类,用于传值
/// </summary>
public class EventNumber : EventArgs
{
int _No;
public int No
{
get { return _No; }
set { _No = value; }
}
public EventNumber(int v)
{
_No = v;
}
}
}
Form2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace Upload
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Form2(object sender)
{
InitializeComponent();
Form1 f = (Form1)sender;
f.EventUpLoad += new Form1.UploadHandler(f_EventUpLoad);
} void f_EventUpLoad(object sender, EventNumber e)
{
label1.Text = "Form1的值己变更:" + e.No;
progressBar1.Value = e.No;
}
}
}
Form1 f1=(Form1)sender;
注意,千万不要new Form1。
然后,你就可以任取f1的值了。