要点:
1、允许监听:EnableRaisingEvents = true
2、避免报线程间操作无效:System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
代码:
public Form1()
{
InitializeComponent();
//避免报错:System.InvalidOperationException:“线程间操作无效: 从不是创建控件“button1”的线程访问它。”
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
}
……
private void button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
//调用的程序名
p.StartInfo.FileName = "cmd.exe";
//传入参数
p.StartInfo.Arguments = "/k dir *.txt /s ";
//允许接收停止消息
p.EnableRaisingEvents = true;
//监听结束事件
p.Exited += Exep_Exited;
p.Start();
}
private void Exep_Exited(object sender, EventArgs e)
{
this.button1.Text = "调用完成";
}
按照如此代码的编写,我们就可以方便的对外部调用的程序进行控制了。