2011-12-12 168 views
-1

我有一个foreach循环,看起来像这样:暂停和恢复Foreach循环

foreach (var line in theCP4UnknownList.Distinct()) 
{ 
    var splitUnknowns = line.Split(' '); 
    KTS_Save saveForm = new KTS_Save(splitUnknowns[0], splitUnknowns[1], splitUnknowns[3], splitUnknowns[4], openFile.FileName); 

    saveForm.Show(); 
    saveForm.Activate(); 
    //This is where I would like to add a check to see if a button is clicked, if true continue the foreach loop, else wait for the button to be clicked. 
} 

KTS_Save形式有需要4个文本字段将每次自动填写(以及其他空白的人来由用户填写)foreach循环开始。但是,我只希望一次打开一个新表单,因此程序需要等待用户在下一个KTS_Save表单打开之前单击“保存”按钮....保存按钮将保存当前数据以一种文本文件的形式。

是否有任何可能的方法来暂停foreach循环并等待按钮被点击?我怎样才能做到这一点?

+0

的WinForms?的WebForms?什么? –

+0

@JohnSaunders:VS中的C#表单。的WinForms。 – theNoobGuy

+0

只是好奇,但你打算把它放在一个单独的线程中,对吗?该线程将在循环等待时挂起。 – MGZero

回答

4

只要你的代码更改为:

foreach (var line in theCP4UnknownList.Distinct()) 
{ 
    var splitUnknowns = line.Split(' '); 
    KTS_Save saveForm = new KTS_Save(splitUnknowns[0], splitUnknowns[1], splitUnknowns[3], splitUnknowns[4], openFile.FileName); 

    saveForm.ShowDialog(); 
} 
+0

哇。那很简单。哈哈。谢谢:)快速修复 – theNoobGuy

+0

@theNoobGuy:不客气:-) – Fischermaen

2

使用saveForm.ShowDialog(),而不是saveForm.Show()