2017-10-18 69 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)); 
    } 
}