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

时间:2012-04-10 21:01:20

标签: winforms c#-4.0 datagridviewcolumn datagridviewcombobox

我有一个DataGridViewComboBoxColumn对象,它作为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如何恰当地显示我的枚举感到满意。但是,描述我的枚举的单词将被缩短,只有在我打开下拉菜单然后离开该控件时才会展开。

我也尝试手动设置宽度(如注释掉的行所示)并且没有效果

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

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

我的方法都错了。

我正在调整我删除的列的宽度

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

相反,我应该使用comboBoxColumn设置列宽:

comboBoxColumn.Width = whateverWidthIwant;

感谢大家的帮助!