[英]How can i add to dataGridView1 a data to the last row/column?
In top of form1 i did: 在form1顶部,我做了:
private System.Timers.Timer _refreshTimer;
private int _thisProcess;
Then in the Form1 Load event: 然后在Form1 Load事件中:
_thisProcess = Process.GetCurrentProcess().Id;
InitializeRefreshTimer();
PopulateApplications();
Then the timer init method: 然后是定时器的init方法:
void InitializeRefreshTimer()
{
_refreshTimer = new System.Timers.Timer(5000);
_refreshTimer.SynchronizingObject = this;
_refreshTimer.Elapsed += new System.Timers.ElapsedEventHandler(TimerToUpdate_Elapsed);
_refreshTimer.Start();
}
Then the timer elapsed event: 然后计时器经过的事件:
void TimerToUpdate_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
PopulateApplications();
}
In the end the Populate method: 最后,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 { }
}
}
}
The variable status show in the column2 but let's say i want that status will be display for each process/app in column5 ? 变量状态显示在column2中,但让我说要在column5中为每个进程/应用程序显示状态? How can i move it ?
我该如何移动?
This is an image showing what i get whne running the program: 这是一张图像,显示我在运行程序时得到的内容:
This is the method im using: 这是即时通讯使用的方法:
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);
}
}
}
Can you try this code? 你可以试试这个代码吗?
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);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.