Winforms DataGridViewComboBoxColumn仅在选择时自动调整大小不正确或正确

Winforms DataGridViewComboBoxColumn仅在选择时自动调整大小不正确或正确,winforms,c#-4.0,datagridviewcolumn,datagridviewcombobox,Winforms,C# 4.0,Datagridviewcolumn,Datagridviewcombobox,我有一个DataGridViewComboxColumn对象,它作为gridview中一列的数据源 代码如下: DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn(); comboBoxColumn.DataSource = Enum.GetValues(typeof(MyEnums)); comboBoxColumn.DataPropertyName = "MyPropertyName"; co

我有一个DataGridViewComboxColumn对象,它作为gridview中一列的数据源

代码如下:

DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn();

comboBoxColumn.DataSource = Enum.GetValues(typeof(MyEnums));
comboBoxColumn.DataPropertyName = "MyPropertyName";
comboBoxColumn.Name = "My Column Name";

dataGridView.Columns["MyPropertyName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
//dataGridView.Columns["MyPropertyName"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
//dataGridView.Columns["MyPropertyName"].Width = CalculateColumnWidthFromEnum(typeof(MyEnums));
dataGridView.Columns.Remove(dataGridView.Columns["MyPropertyName"]);
dataGridView.Columns.Insert(1, comboBoxColumn);
我很满意WinForms如何恰当地显示我的枚举等等。但是,描述枚举的单词将被缩短,只有在打开下拉列表并离开该控件时才会展开

我还尝试手动设置宽度(如注释掉的行所示),但没有效果

在我的网格视图中有两个类似的列


我在这里遗漏了什么吗?

我的方法完全错了

我正在调整我移除的一列的宽度

dataGridView.Columns.Remove(dataGridView.Columns["MyPropertyName"]);
相反,我应该使用
comboBoxColumn
设置列宽,如下所示:

comboBoxColumn.Width = whateverWidthIwant;

谢谢大家的帮助

我的方法完全错了

我正在调整我移除的一列的宽度

dataGridView.Columns.Remove(dataGridView.Columns["MyPropertyName"]);
相反,我应该使用
comboBoxColumn
设置列宽,如下所示:

comboBoxColumn.Width = whateverWidthIwant;

谢谢大家的帮助

您还尝试过其他哪些
DataGridViewAutoSizeColumnMode
s?另外,我认为您的注释语句不起作用的原因是您使用了autosizemode。你不能覆盖它…所有的。在每种情况下表现出相同的行为。在使用注释语句时,我将“AutoSizeMode”设置为“None”。如果省略第7行和第8行,而使用第9行,会发生什么情况?它必须使用其中一种模式。它不能为空。好吧,那么使用autosize none和calculateFromEnum呢?很抱歉,我只是在猜测,但我不知道您尝试了什么,也看不出有什么问题……您尝试过其他哪些
DataGridViewAutoSizeColumnMode
s?另外,我认为您的注释语句不起作用的原因是您使用了autosizemode。你不能覆盖它…所有的。在每种情况下表现出相同的行为。在使用注释语句时,我将“AutoSizeMode”设置为“None”。如果省略第7行和第8行,而使用第9行,会发生什么情况?它必须使用其中一种模式。它不能为空。好吧,那么使用autosize none和calculateFromEnum呢?很抱歉,我只是在猜测,但我不知道你尝试了什么,我也不知道会有什么错。。。