在form1顶部,我做了:
private System.Timers.Timer _refreshTimer;
private int _thisProcess;
然后在Form1 Load事件中:
_thisProcess = Process.GetCurrentProcess().Id;
InitializeRefreshTimer();
PopulateApplications();
然后是定时器的init方法:
void InitializeRefreshTimer()
{
_refreshTimer = new System.Timers.Timer(5000);
_refreshTimer.SynchronizingObject = this;
_refreshTimer.Elapsed += new System.Timers.ElapsedEventHandler(TimerToUpdate_Elapsed);
_refreshTimer.Start();
}
然后计时器已过去的事件:
void TimerToUpdate_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
PopulateApplications();
}
最后,Populate方法:
void PopulateApplications()
{
dataGridView1.Rows.Clear();
foreach (Process p in Process.GetProcesses("."))
{
if (p.Id != _thisProcess)
{
try
{
if (p.MainWindowTitle.Length > 0)
{
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add( p.MainWindowTitle, status);
}
}
catch { }
}
}
}
变量status显示在column2中,但让我说要在column5中为每个进程/应用程序显示状态?我该如何移动?
这是一张图像,显示我在运行程序时得到的内容:
这是即时通讯使用的方法:
void PopulateApplications()
{
dataGridView1.Rows.Clear();
DataGridViewImageColumn img = new DataGridViewImageColumn();
img.HeaderText = "Icon";
img.Name = "ImageCol";
dataGridView1.Columns.Add(img);
dataGridView1.Columns.Add("AppName", "Application Name");
dataGridView1.Columns.Add("Status", "Status");
foreach (Process p in Process.GetProcesses())
{
if (p.MainWindowTitle.Length > 1)
{
var icon = Icon.ExtractAssociatedIcon(p.MainModule.FileName);
Image ima = icon.ToBitmap();
(dataGridView1.Columns["ImageCol"] as DataGridViewImageColumn).Image = ima;
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add(icon, p.MainWindowTitle, status);
}
}
}
你可以试试这个代码吗?
void PopulateApplications()
{
dataGridView1.Rows.Clear();
DataGridViewImageColumn img = new DataGridViewImageColumn();
img.HeaderText = "Icon";
img.Name = "ImageCol";
dataGridView1.Columns.Add(img);
dataGridView1.Columns.Add("AppName", "Application Name");
dataGridView1.Columns.Add("Status", "Status");
foreach (Process p in Process.GetProcesses())
{
if (p.MainWindowTitle.Length > 1)
{
var icon = Icon.ExtractAssociatedIcon(p.MainModule.FileName);
Image ima = icon.ToBitmap();
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add(ima, p.MainWindowTitle, status);
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句