我有一个foreach循环,我需要暂停以允许用户在表单上输入。
foreach (XmlNode node2 in xmlFile)
{
...get currentRow from XML file
...update form label
???wait for user to enter data on form and press button
}
C#中是否存在任何类型的等待用户输入函数,我可以用它来执行此操作?
更新:
根据反馈,我已成功将程序修改为:
答案 0 :(得分:2)
创建输入表单(使用visual studio designer,非常简单),然后通过调用ShowDialog()
在循环中显示它:
foreach(XmlNode node2 in xmlFile)
{
//...
MyInputForm form = new MyInputForm();
form.ShowDialog(); // it waits until user close the input form
var input = form.PropertyContainingInputFromTheUser;
//...use the input
}
答案 1 :(得分:1)
执行此操作的一种方法是执行while循环,以继续检查值。然而;根据您实现此操作的方式以及应用程序的整体结构,这可能会导致应用程序无响应。
答案 2 :(得分:1)
您可以打开用户可以输入的模式表单。
如果您希望始终保持同一表单,则最好将所有节点复制到Queue<XmlNode>
,一次处理一个节点,当用户按下按钮时,选择队列中的下一个项目直到队列是空的。
答案 3 :(得分:1)
我不会使用这种设计。我会有一个表单,显示并可能使用表单上的控件循环 - 不为每个实例显示新表单。将数据加载到数据网格中,让用户编辑所有数据并一次保存。