【发布时间】:2015-10-03 07:32:50
【问题描述】:
我有两个 winform MainForm 和 GridForm
在 MainForm.cs 中
使用foreach一一执行cmd rmdir命令
现在我想显示所有directory name 及其status name 的列表,无论它是否正在处理。
foreach (var item in listBox1.Items)
{
System.Diagnostics.Process.Start("cmd.exe", "/c rmdir " + item);
// want to show inside gridview in GridForm which folder is done - so uodate status as done
var p = proc.ExitCode;
string status;
if (p == 1){ status = "fail"}
else {status = "success"}
// How to pass status text value to GridForm from here?
I tried like
// grid view bind which will pass items , what about status ?
GridForm statusForm = new GridForm(listBox1.Items);
GridForm.ShowDialog();
}
问题是我无法将状态值传递给GridForm
GridForm.cs
private void GridForm_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
foreach (string items in _ItemList)
{
DataRow row = dt.NewRow();
dt.Rows.Add(items);
}
this.statusGridView.DataSource = dt;
}
我的问题是在 MainForm 上有一个 foreach 一个一个地执行rmdir,现在当我点击执行按钮时 MainForm 它将在 foreach 代码之上执行并且将打开 另一种形式 GridForm 显示带有两列 FolderName 的 gridview 和状态我将从项目列表和当前状态中获取所有文件夹名称 来自 foreach 。
现在如何将它绑定到gridview?
【问题讨论】:
-
为什么要在主窗体中启动两个进程?第二次调用 Process.Start 时使用的 ProcessStartInfo 的内容是什么?
-
对不起,它是一个虚拟代码,只有一个进程。问题是我如何将连续值从一种形式传递到另一种形式?这样我就可以在 gridview 其他列中更新状态成功/失败
-
不清楚 foreach 是否重命名了多个目录,并且您希望在重命名操作执行时将此操作的结果一一传递给已加载的 GridForm,或者您是否要传递所有重命名导致一批尚未加载的 GrdiForm
-
我知道我出错了。我的问题是在 MainForm 上,有一个 foreach 一个一个地执行 rmdir ,现在当我单击 MainForm 上的执行按钮时,它将在 foreach 代码上方执行,这将打开另一个表单 GridForm ,它显示带有两列
FolderName和 @987654333 的 gridview @我将从 ItemList 中获取所有 FoolderName 并从 foreach 中获取 Current Status 。现在我怎样才能将它绑定到gridview? -
更新感谢指出。