我是这样绑定datagridview的
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(selectCommand, con);
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
name.DataSource = table;
请问该如何设置某列为combox列呢
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(selectCommand, con);
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
name.DataSource = table;
请问该如何设置某列为combox列呢
name.DisplayMember = "Column Name"
name.ValueMember = "Column Name2"
利用本来的datatable可以这样绑定到combobox控件上
这是vs帮助文档上的combobox控件数据代码示例。其中使用的是dataset。
我想dataset。table等价于datatable把。不然你可以试试改成dataset看看
private void BindComboBox()
{
comboBox1.DataSource = dataSet1.Tables["Suppliers"];
comboBox1.DisplayMember = "ProductName";
}
DataGridViewComboBoxColumn dtDeparementID = new DataGridViewComboBoxColumn();
dtDeparementID.DataSource=dt;//dt是绑定的Combox的数据源
dtDeparementID.DisplayMember=“SDICNAME;//Combox的数据源中显示的字段
dtDeparementID.ValueMember =“SID”;//Combox的数据源中值字段
dtDeparementID.DataPropertyName = "sDepartmentID";//DataGridView的数据源绑定Combox字段
dtDeparementID.HeaderText = "部门";
dtDeparementID.SortMode = DataGridViewColumnSortMode.NotSortable;
this.DataGridView1.Columns.Add(dtDeparementID);
要加combox列有两种方法:
1.添加个新combox列,把旧的那列隐藏,但是这样不能动态改变datasouse的值,添加方法如8楼
2.如8楼,在点击事件,或enter事件时,加个combox,造成显示的假象
ComboBox cmb = new ComboBox();
cmb.Name = "cmb1" ;
cmb.Items.Add("43");//也可以綁定數據源
cmb.Items.Add("345");
Rectangle cellrect = dataGridView1.GetCellDisplayRectangle(2, 2, true);//以第三列第三行为例
cmb.Height = cellrect.Height;
cmb.Width = cellrect.Width;
cmb.Top = cellrect.Top + dataGridView1.Top;
cmb.Left = dataGridView1.Left + cellrect.Left;
cmb.Visible = true;
cmb.Text = dataGridView1.Rows[2].Cells[2].Value.ToString();
this.Controls.Add(cmb);
cmb.BringToFront();