【发布时间】:2014-04-17 08:30:09
【问题描述】:
我正在尝试在 C# 中制作一个类似于任务管理器的程序。我目前的方法是在应用程序启动时获取进程列表,然后如果用户按下“更新”按钮,则获取一个新列表。我想在我的控件中保留一个当前列表,并“保存”用户选择的位置,而不是选择和重置滚动条。在 C# 中这样做的正确方法是什么?
这是我当前更新控件的方式:
public void UpdateForm()
{
processGridView.Rows.Clear();
Process[] processes = Process.GetProcesses();
for (int i = 0; i < processes.Length; ++i)
{
processGridView.Rows.Add();
processGridView.Rows[i].Cells["processName"].Value = processes[i].ProcessName + ".exe";
processGridView.Rows[i].Cells["processID"].Value = processes[i].Id;
}
}
【问题讨论】:
-
当您使用此代码时会发生什么?您需要提供错误让我们解决。除此之外,这段代码看起来不错。
-
这段代码中的问题是,如果我尝试运行一个计时器来每隔一段时间调用这个函数,DataGridView 就会出现痉挛,并且单元格会无缘无故地重新调整。滚动条也被重置,使它看起来一团糟。我需要帮助弄清楚如何在不每次都重置整个控件的情况下刷新列表。
标签: c# windows datagridview process