2017-10-18 134 views
2

我正在寫一個簡單的任務列表應用程序作爲Windows窗體和C#中的練習,這兩者我都很新。我使用下面的代碼來嘗試在ListView中顯示進程ID(我在Visual Studio中的設計視圖中進行過),但是當我運行它時,項目不會顯示。C#項目不會出現在ListView中

[STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     var currentWindow = new taskMngrWndw(); 
     Application.Run(currentWindow); 
     Process[] processList = Process.GetProcesses(); 
     foreach (Process proc in processList) 
     { 
      string processID = Convert.ToString(proc.Id); 
      currentWindow.taskView.Items.Add(new ListViewItem(processID)); 
     } 
     currentWindow.taskView.Refresh(); 
    } 

我在做什麼錯?

+0

你有沒有找到它?爲什麼這個區域的進程列表部分? – BugFinder

+0

@BugFinder就像我說過的,我的耳朵真的很綠,所以我不確定跟蹤是什麼意思,我認爲這是最好的地方 - 它應該在表單的.cs文件中嗎? –

+0

將您的ListView視圖屬性設置爲「Details」 – LocEngineer

回答

2

的問題是,這行不返回,直到主窗體關閉(即您的應用程序退出):

Application.Run(currentWindow); 

所以代碼來填充列表視圖只運行後的形式被解僱和關閉。而是將該代碼移到表單中,例如在表單Load事件中:

private void taskMngrWndw_Load(object sender, EventArgs e) 
{ 
    FillProcesses(); 
} 

private void FillProcesses() 
{ 
    Process[] processList = Process.GetProcesses(); 
    foreach (Process proc in processList) 
    { 
     string processID = Convert.ToString(proc.Id); 
     taskView.Items.Add(new ListViewItem(processID)); 
    } 
}