日期:2014-05-18 浏览次数:20846 次
comcol.DataPropertyName = "..."; // 绑定到DataTable的那个字段 comcol.DataSource = GetAllComboBoxValues(); // 所有可能的值,可以是一个List等(如果是Datatable,还要指定DisplayMember)
------解决方案--------------------
DataGridViewComboBoxColumn comcol = new DataGridViewComboBoxColumn();
comcol.DisplayMember = "TEXT";
comcol.ValueMember = "VALUE";
DataTable dt = new DataTable();
dt.Columns.Add( "TEXT" );
dt.Columns.Add( "VALUE" );
DataRow row = dt.NewRow();
row["TEXT"] = "1";
row["VALUE"] = "a";
dt.Rows.Add( row );
row = dt.NewRow();
row["TEXT"] = "2";
row["VALUE"] = "b";
dt.Rows.Add( row );
comcol.DataSource = dt;
dataGridView1.Columns.Add( comcol );
----------------------------------------------------
comcol.DataPropertyName是设置dataGridView1绑定表对应的列
------解决方案--------------------
comcol.DisplayMember = "TEXT";
comcol.ValueMember = "VALUE";
这两个是设置列里面下拉菜单对应此列数据源中的两列的
------解决方案--------------------
楼上的都对,给你一个最简单的方法加一个事件
private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
if (e.Context == DataGridViewDataErrorContexts.Commit)
{
MessageBox.Show("检查提交出错,你可能没有输入完全数据或者没有正确输入数据");
}
if (e.Context == DataGridViewDataErrorContexts.CurrentCellChange)
{
;
}
if (e.Context == DataGridViewDataErrorContexts.Parsing)
{
;
}
if (e.Context == DataGridViewDataErrorContexts.LeaveControl)
{
;
}
if ((e.Exception) is ConstraintException)
{
DataGridView view = (DataGridView)sender;
view.Rows[e.RowIndex].ErrorText = "违反输入约束出错";
view.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "违反输入约束出";
e.ThrowException = false;
}
}