1

我有一个 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 如何恰当地显示我的枚举等等。但是,描述我的枚举的文字将被缩短,只有在我打开下拉菜单然后离开该控件时才会展开。

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

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

我在这里错过了什么吗?

4

1 回答 1

1

我的方法全错了。

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

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

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

comboBoxColumn.Width = whateverWidthIwant;

感谢大家的帮助!

于 2012-07-31T20:34:16.637 回答