簡體   English   中英

將流程列表放入C#的組合框中

[英]Putting a process list into a combo box in C#

我想要的是,當我單擊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);
}

為什么拒絕工作? :■

最好使用ListBox,這樣您就可以在自己的行上顯示所有進程,而不必像現在在組合框/下拉列表中那樣將其下拉

有關更多信息,請參見此處http://msdn.microsoft.com/zh-cn/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();

嘗試將代碼放在initializeComponets之后的構造函數中,我的猜測是您在每次重新加載數據時重置每次單擊時的組合框(包括單擊以選擇一個值),而且如果您重新加載,當前代碼也不會更新這些值使用標簽聚焦組合框!

不知道問題出在哪里,但是這段代碼可以正常工作:

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

實際上,可能是過程更改的數量,並且這可能會使索引器無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM