如何根据行的高度/行数自动更改dataGridView1大小?

时间:2014-06-04 08:49:12

标签: c# winforms

这是我添加行的代码:

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);
                }
            }
        }

结果如下:

enter image description here

我希望列和行下面的灰色区域不显示列/行。 也许我需要调整form1和dataGridView1的大小?并在每次添加新行时调整其大小。

我应该如何处理这个灰色区域?

1 个答案:

答案 0 :(得分:0)

你试过了吗?

 dataGridView1.AutoSizeRowsMode =DataGridViewAutoSizeRowsMode.AllCells;

但请注意,此代码段会根据行数更改行的行高,以适应网格的高度。我不知道你是否想要这样的行为。

为了获得预期的结果,您可以每次计算每一行的高度:

int height = 0;
foreach (DataGridViewRow row in dataGridView1.Rows) {
    height += row.Height;
}
height += dataGridView1.ColumnHeadersHeight;

然后设置:

dataGridView1.Height=height;

但是,我不得不承认我没有测试过这个......

编辑:

void PopulateApplications()
        {
            dataGridView1.Rows.Clear(); 
            dataGridView1.Height=0;
            dataGridView1.Height += dataGridView1.ColumnHeadersHeight;           
            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);
                    dataGridView1.Height+=22;
                }
            }
        }