C# c语言中的datagridview和窗体大小调整#

C# c语言中的datagridview和窗体大小调整#,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我有一个DataGridView,其Dock属性设置为“Fill”。因此,当我调整窗体大小时,DataGridView将调整大小。在本例中,我使用固定值设置DataGridView列宽。像这样: dgGrid.Columns[0].Width = 50; dgGrid.Columns[1].Width = 126; dgGrid.Columns[2].Width = 100; 我正在尝试调整控件大小时,按比例调整我的DataGridView中的列的大小。当我的网格列设置为如上所示时,如何以编程

我有一个
DataGridView
,其
Dock
属性设置为“Fill”。因此,当我调整窗体大小时,
DataGridView
将调整大小。在本例中,我使用固定值设置
DataGridView
列宽。像这样:

dgGrid.Columns[0].Width = 50;
dgGrid.Columns[1].Width = 126;
dgGrid.Columns[2].Width = 100;

我正在尝试调整控件大小时,按比例调整我的
DataGridView
中的列的大小。当我的网格列设置为如上所示时,如何以编程方式执行此操作?请帮助我编写代码。谢谢。

您可以使用DataGridView.Resize事件根据新的列宽计算每列的新宽度。

当您硬编码列宽值时,没有特别优雅的方法可以做到这一点。我不知道你为什么要这么做;这个问题没有提供太多的背景信息

更好的解决方案是调用,它将使用指定的大小模式自动调整所有列的宽度。您可以在窗体的
Resize
事件的处理程序中调用此方法。例如:

protected override void OnResize(EventArgs e)
{
    myDataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}

提供有关
DataGridView
控件大小调整选项的详细信息。

您似乎在编写代码时设法使用大写字母。为什么不写英语呢?用百分比设置宽度就是解决办法。不支持此操作。考虑切换到WPF而不是现在已经过时的WinForms。@克劳斯:我不知道为什么每当有人不知道如何在WPF中实现某些东西时,“切换到WPF”就会成为答案。改用WPF当然不是一种灵丹妙药。特别是,在哪里可以找到WPF应用程序的DataGridView控件而不嵌入WinForms控件?(这很难,嗯:p)请注意,设置此属性将阻止用户使用鼠标手动调整列的大小。
datagridview.Columns["columnName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;