C# 根据DataGridView(WinForms)中的屏幕大小调整列宽

C# 根据DataGridView(WinForms)中的屏幕大小调整列宽,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,到目前为止,我已经实现了以下目标(列不会根据应用程序的大小自动调整大小): 我希望实现以下功能,以便在用户更改应用程序大小时,列可以动态调整大小: 我正在使用.Net 2008中的DataGridView为DataGridViewAutoSizeColumnsMode指定一个值: dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 也可以在设计时在“栅格特性”中进行设置: 但有一个挑战。我希望

到目前为止,我已经实现了以下目标(列不会根据应用程序的大小自动调整大小):



我希望实现以下功能,以便在用户更改应用程序大小时,列可以动态调整大小:


我正在使用.Net 2008中的DataGridView

DataGridViewAutoSizeColumnsMode
指定一个值:

dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
也可以在设计时在“栅格特性”中进行设置:


但有一个挑战。我希望某些列不要“按比例”缩放。Bcoz使用此方法,所有列的大小都相同。我希望某些列比其他列扩展得更多。我找到了一个解决方案。在
dataGridView1.AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode.Fill
之后,我们可以简单地循环列数并添加
Col.Width=Col.GetPreferredWidth(DataGridViewAutoSizeColumnsMode.DisplayedCellsExceptHeader,True)
。这将根据列自动调整大小widths@IshGoel我试图循环遍历这些列,但得到的“{”对象引用未设置为对象的实例。“}”。我遗漏了什么。下面是每个(dataGridEmailListView.Columns中的DataGridViewColumn列){col.Width=col.GetPreferredWidth(DataGridViewAutoSizeColumnMode.DisplayedCellsCeptheader,true);}的代码