2012-04-10 27 views
1

我有充当我的GridView中一列的数据源一个DataGridViewComboBoxColumn对象。DataGridViewComboBoxColumn自动调整大小不正确或正确,只有上选择

的代码如下:

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如何适当地和诸如此类的东西显示我的枚举。但是,描述我的枚举的单词将被缩短,只有当我打开下拉菜单然后离开该控件时才会展开。

我也尝试手动设置的宽度(如由注释的线),并且没有任何影响

我有两列像这在我的网格视图。

我在这里错过了什么吗?

+0

你试过了哪个'DataGridViewAutoSizeColumnMode'?另外我认为你的评论声明不起作用的原因是你使用autosizemode。你不能重载它... – MarioDS 2012-04-10 21:04:20

+0

所有这些。每个人都表现出同样的行为。使用注释语句时,我将'AutoSizeMode'设置为'None'。 – Kashif 2012-04-10 21:12:00

+0

如果您省略第7行和第8行,并使用9代替,会发生什么情况? – MarioDS 2012-04-10 21:13:10

回答

1

我有办法都是错误的。

我调整列的宽度,我使用comboBoxColumn这样除去

dataGridView.Columns.Remove(dataGridView.Columns["MyPropertyName"]); 

相反,我应该已经设置列宽:

comboBoxColumn.Width = whateverWidthIwant; 

感谢大家的帮助!