c# - 当我删除项目时,列表框不会刷新(Visual Studio)

时间:2016-12-03 01:37:11

标签: c# process listbox taskmanager

我正在制作一个简单的任务管理器。到目前为止,我已经能够将所有进程存储到Process数组中,然后将其添加到listBox中。现在,当我按下 kill 按钮时,进程被终止,但它仍然显示在listBox中。此外,当我的代码运行时打开一个进程,它没有显示,我必须重新运行我的代码。这就是我所拥有的......

private void getProcs()
{
    procArray = Process.GetProcesses();
    processListBox.Items.Clear();
    for(int i = 0; i<procArray.Length; i++)
    {
        processListBox.Items.Add(procArray[i].ProcessName);
    }
}

private void Form1_Load(object sender, EventArgs e)
{
    getProcs();
}

private void killButton_Click(object sender, EventArgs e)
{
    procArray[processListBox.SelectedIndex].Kill();
    getProcs();
}

我甚至尝试在getProcs()函数中再次调用killButton_Click函数来获取新列表。似乎&#34;刷新&#34; listBox(因为我再也看不到我在列表框中选择的索引,但是当我搜索进程时我刚刚杀死了它仍然在listBox中(我知道该进程因应用程序关闭而被终止)。 / p>

我也尝试使用计时器组件,但这是超级愚蠢的,因为有背景进程一直打开和关闭,所以几乎不可能选择任何东西

修改 好的,所以我找到了一种方法来使listBox&#39;刷新&#39;每当我杀死一个进程时,我只是在我终止进程后添加了.WaitForExit()。转发.kill()函数是异步的,这就是为什么你必须等待它退出。

现在......我不知道怎么去刷新&#39;每当进程打开时。目前我有一种廉价的方式。我做了一个&#34;刷新&#34;按钮手动更新列表框......

0 个答案:

没有答案