我有一个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如何恰当地显示我的枚举感到满意。但是,描述我的枚举的单词将被缩短,只有在我打开下拉菜单然后离开该控件时才会展开。
我也尝试手动设置宽度(如注释掉的行所示)并且没有效果
我在网格视图中有两列这样的列。
我在这里错过了什么吗?
答案 0 :(得分:1)
我的方法都错了。
我正在调整我删除的列的宽度
dataGridView.Columns.Remove(dataGridView.Columns["MyPropertyName"]);
相反,我应该使用comboBoxColumn
设置列宽:
comboBoxColumn.Width = whateverWidthIwant;
感谢大家的帮助!