C#中,access数据表中某一列是下拉列表框,如何能在datagridview控件中使这一列也显示为下拉列表框?感激不尽~~~

解决方案 »

  1.   


    private void GetData(string selectCommand, BindingSource binding, DataGridView dGV)
    {
        try
        {
            String connectionString = "server="+ connectionReadServerIp + ";uid=
                                                                " + connectionReaduser + ";pwd=
                                                               " + connectionReadPassword +
                                                               ";database=" + connectionReaddatabase;
                    SqlDataAdapter dataAdapter = new SqlDataAdapter(selectCommand, connectionstring);                DataTable table = new DataTable();
                    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
                    dataAdapter.Fill(table);
                    binding.DataSource = table;
                    dGV.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
          }
         catch (SqlException error)
         {
                    WriteLog(error.Message.ToString());
         }} 2、在窗体的 Load 事件处理程序中,将 DataGridView 控件绑定到 BindingSource 组件,并调用 GetData 方法从数据库中检索数据(事先必须先将DataGridView控件和BindingSource控件拖到Form中,编译器会自动创建两个变量bindingSource1和dataGridView1)
    private void Form1_Load(object sender, System.EventArgs e)
    {
        dataGridView1.DataSource = bindingSource1;
        GetData("select * from Customers",bindingSource1,dataGridView1);
    }
      

  2.   

    DatagridViewComboxColumn cmbox = Datagridview.Columns["COmbox控件的Name"] as DatagridViewComboxColumn ;   cmbox.DataSource = 下框的数据源;   
    cmbox.DataPropertyName= datagrid的数据源的要绑定的列;   
    cmbox.d...Member="下拉框显示的TEXT";   
    cmbox.ValueMember="隐藏的值";   
    DataGridViewComboBoxColumn csex = new DataGridViewComboBoxColumn();   
    csex.DataPropertyName = "sSex";   
     csex.HeaderText = "性别";   
      DataTable dt = new DataTable();   
      dt.Columns.Add("sexname");   
      dt.Columns.Add("sexvalue");   
      DataRow dr = dt.NewRow();   
      dr[0] = "男";   
      dr[1] = "1";   
      dt.Rows.Add(dr);   
      DataRow dr1 = dt.NewRow();   
      dr1[0] = "女";   
      dr1[1] = "2";   
      dt.Rows.Add(dr1);   
        
      csex.DataSource = dt;   
      csex.ValueMember = "sexvalue";   
      csex.DisplayMember = "sexname";   
      this.datagridview1.Columns.Add(csex); private void DataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
      {
      if (e.Control is DataGridViewComboBoxEditingControl && this.DataGridView.CurrentCell.ColumnIndex == 2 && this.DataGridView.CurrentCell.RowIndex != -1)
      {
      this.DataGridViewComboBox = (DataGridViewComboBoxEditingControl)e.Control;
      DataGridViewComboBox.SelectionChangeCommitted += new EventHandler(this.DataGridViewComboBox_SelectionChange);
      }
      }  private void DataGridViewComboBox_SelectionChange(object sender, EventArgs e)
      {
       
      }
      

  3.   

    说详细一些就是我自己新建了一个access表,数据表里面有一列是下拉列表,现在我想在窗体的datagridview控件中将这个表的信息完整的显示出来,包括那个下拉列表框,也就是说在datagridview控件中点击那一列也会出现下拉框,我目前只能让datagridview完整地显示出access数据表里面的信息,下拉列表那一列在datagridview中变成了一般的数据框,只显示之前选中的那个项。
      

  4.   

    LZ,可以采用2楼的方法在datagridview上做操作