1

グリッドビューの列の1つのデータソースとして機能する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が列挙型を適切に表示する方法などに満足しています。ただし、列挙型を説明する単語は短くカットされ、ドロップダウンを開いてそのコントロールを終了した場合にのみ拡張されます。

また、(コメントアウトされた線で示されているように)手動で幅を設定しようとしましたが、効果はありませんでした

グリッドビューには、このような2つの列があります。

ここで何かが足りませんか?

4

1 に答える 1

1

私はアプローチをすべて間違っていました。

削除した列の幅を調整していました

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

代わりに、comboBoxColumn次のように使用して列幅を設定する必要がありました。

comboBoxColumn.Width = whateverWidthIwant;

みんなの助けに感謝します!

于 2012-07-31T20:34:16.637 に答える