私はこれを機能させることができません。私はwinformsにdatagridviewを持っており、この列の1つはDataGridViewComboBoxColumnです。
私のコンストラクターでは、そのように設定しました
DataGridViewComboBoxColumn column = (DataGridViewComboBoxColumn)RectangleGrid.Columns["Material"];
DataTable data = new DataTable();
data.Columns.Add(new DataColumn("Value", typeof(int)));
data.Columns.Add(new DataColumn("Description", typeof(string)));
foreach (Materials M in DataStructure.Active.Active_Materials)
{
data.Rows.Add(M.MaterialNr, (M.MaterialNr + 1).ToString() + " " + M.Material.Name);
}
column.DataSource = data;
column.ValueMember = "Value";
column.DisplayMember = "Description";
そして、私が望むドロップダウンボックスで何も選択されていないことを除いて、それは実際にうまく機能します。私はこれをグーグルで検索し、たとえばこのアプローチを試しました:http: //goo.gl/kBy8Wしかし、EditingControlShowingはボックスをクリックしたときにのみ発生し、最初に表示されたときでは発生しないためです(クリックすると選択したインデックスを設定できます)しかし、それは良くありません)。CellFormattingバージョンは少なくとも値を変更しますが、データソースからの最初のインデックスではなく文字列をそこに配置するだけです。
私もこれを試しました
column.DefaultCellStyle.NullValue = data.Rows[0]["Description"];
column.DefaultCellStyle.DataSourceNullValue = data.Rows[0]["Value"];
それは機能しているように見えましたが、ドロップダウンで最初のインデックスを選択すると(ドロップダウンをドロップして最初のインデックスを選択し、セルを選択解除します)、ParseFormattedValueから「値」をに変換できないというエラーが発生しましたsystem.String。
これは正しい方向に進んでいるように見えましたが、動作させることができませんでした:http: //goo.gl/VevA3