2012-04-10 30 views
1

グリッドビュー内の列のデータソースとして機能するDataGridViewComboBoxColumnオブジェクトがあります。次のように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のが適切とその他もろもろ、私の列挙型の表示方法に満足しています。しかし、私の列挙型を記述する単語は短く切り詰められ、ドロップダウンを開いてそのコントロールを離れると拡張されます。

Iはまた、(コメントアウト線で示すように)手動で幅を設定しようと、それは私は私のグリッドビューでは、このような2つの列を持っている何の効果

を有していませんでした。

ここに何か不足していますか?

+0

あなたが試した他の 'DataGridViewAutoSizeColumnMode'はどれですか?また、あなたのコメント文がうまくいかない理由は、あなたがautosizemodeを使用しているという事実です。あなたはそれを上書きすることはできません... – MarioDS

+0

それらのすべて。同じ行動がそれぞれに出現します。私は、 'AutoSizeMode'を 'None'に設定しました。 – Kashif

+0

7行目と8行目を省略して代わりに9を使用するとどうなりますか? – MarioDS

答えて

1

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

代わり
dataGridView.Columns.Remove(dataGridView.Columns["MyPropertyName"]); 

を削除し、列の幅を調整した

私は、次のようなcomboBoxColumnを使用して列幅を設定しておく必要があります。すべての人の助けを

comboBoxColumn.Width = whateverWidthIwant; 

感謝を!

関連する問題