1

У меня есть объект DataGridViewComboBoxColumn, который служит источником данных для одного из столбцов в моем gridview.DataGridViewComboBoxColumn Autosizes некорректно или правильно-только-на-выбор

Код выглядит следующим образом:

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

+0

Все они. Такое же поведение проявляется в каждом. Я устанавливаю «AutoSizeMode» в «None» при использовании комментариев. – Kashif

+0

Что произойдет, если вы опустите строки 7 и 8 и вместо этого используете 9? – MarioDS

ответ

1

У меня был подход не так.

Я регулировка ширины колонки я удалил

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

Вместо этого я должен установить ширину столбца с использованием comboBoxColumn как таковые:

comboBoxColumn.Width = whateverWidthIwant; 

Спасибо за помощь каждого!