允许来自foreach循环的用户表单输入
本文关键字:用户 表单 输入 循环 foreach | 更新日期: 2023-09-27 18:07:12
我有一个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#中是否有等待用户输入的函数,我可以用它来做这件事?
更新:根据反馈,我成功地将程序修改为:
- 将XML列表加载到Queue中(使用ForEach循环)
- 设置用户输入以遍历队列(删除顶部项,显示下一个顶部项)
创建输入表单(使用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
}
您可以打开一个模态表单,用户可以在其中进行输入。
如果您想一直保持在同一个表单上,您最好将所有节点复制到Queue<XmlNode>
,每次处理一个,当用户按下按钮时,在队列中选择下一个项目,直到队列为空。
这样做的一种方法是做一个while循环,不断检查一个值。然而;这可能会导致应用程序变得无响应,这取决于您如何实现它以及应用程序的整体结构。
我不会使用这种设计。我会有一个窗体,显示,也许循环使用窗体上的控件-不显示每个实例的新窗体。将数据加载到数据网格中,让用户一次编辑所有数据并保存。