0

我想要的是,当我单击 comboBox1 框时,它将显示当前正在运行的所有进程。

private void comboBox1_MouseClick(object sender, MouseEventArgs e)
{
     comboBox1.Items.Clear();
     Process[] MyProcess = Process.GetProcesses();
     for (int i = 0; i < MyProcess.Length; i++)
            comboBox1.Items.Add(MyProcess[i].ProcessName + "-" + MyProcess[i].Id);
}

为什么它拒绝工作?:秒

4

3 回答 3

2

最好使用列表框,这样您就可以在自己的行上显示所有进程,而不必像现在在组合框/下拉菜单中那样将其下拉

欲了解更多信息,请看这里 http://msdn.microsoft.com/en-us/library/1f3ys1f9.aspx

像这样更改您的代码以进行测试

添加这个方法

private void LoadProcesses()
{
    comboBox1.Items.Clear();
    Process[] MyProcess = Process.GetProcesses();
    for (int i = 0; i < MyProcess.Length; i++)
        comboBox1.Items.Add(string.Format("{0} - {1}", MyProcess[i].ProcessName, MyProcess[i].Id));

}

并在您的表单加载事件中添加:

LoadProcesses();
于 2012-07-16T06:09:58.280 回答
2

尝试在 initializeComponets 之后立即将代码放入构造函数中使用选项卡聚焦组合框!

于 2012-07-16T06:18:37.813 回答
0

不知道问题是什么,但这段代码工作正常:

comboBox1.Items.Clear();
comboBox1.Items.AddRange(Process.GetProcesses().Select<Process, string>(F => F.ProcessName + "- " + F.Id).ToArray());

实际上,也许进程的数量发生了变化,这会使索引器失效......

于 2012-07-16T06:35:53.507 回答