void PopulateApplications()
{
dataGridView1.Rows.Clear();
foreach (Process p in Process.GetProcesses())
{
if (p.MainWindowTitle.Length > 1)
{
var icon = Icon.ExtractAssociatedIcon(p.MainModule.FileName);
ima = icon.ToBitmap();
ima = resizeImage(ima, new Size(25, 25));
ima.Save(@"c:\temp\ima.jpg");
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add(ima, p.ProcessName, status);
}
}
int rc = dataGridView1.Rows.Count * ROW_SIZE;
}
在这种情况下,在第一次迭代后,添加了10行,我知道每行高度为22。 所以rc = 220。
现在在设计师的开头,form1的大小是:648,332 我之前检查过manualy,648,332适合行高,但是让我说我在设计器中更改了form1的大小,并从:648,200开始,有5行或20行。所以我想计算所有行的高度,并设置form1大小以适合所有行。
因为每个用户在运行程序时都会运行其他数量的进程。所以不是每个人648,332都是一个很好的form1。
答案 0 :(得分:0)
这可能会解决您的问题。
void PopulateApplications()
{
dataGridView1.Rows.Clear();
foreach (Process p in Process.GetProcesses())
{
if (p.MainWindowTitle.Length > 1)
{
var icon = Icon.ExtractAssociatedIcon(p.MainModule.FileName);
ima = icon.ToBitmap();
ima = resizeImage(ima, new Size(25, 25));
ima.Save(@"c:\temp\ima.jpg");
String status = p.Responding ? "Running" : "Not Responding";
dataGridView1.Rows.Add(ima, p.ProcessName, status);
}
}
int totalRowSize = dataGridView1.Rows.Count * 22;
int formHeight = this.Size.Height;
if (totalRowSize > formHeight-30)
this.Height = totalRowSize + 30;
}