“学生表”有4列,编码,姓名,学校,性别 , “学校表” 编码,名称 两列,
一个表格DataGridView 绑定到表 上,学校列存的数据是编码 ,
在显示时,都是DataGridViewTextBoxColumn 这样的格式,问题:
1、学校列能根据“学校表”显示名称.
2、而在进入学校列某单元格修改或录入时,格式是 DataGridVeiwComboBoxColumn 有下列列表(“学校表”的数据),离开单元格时,又恢复DataGridViewTextBoxColumn 这样的格式。

解决方案 »

  1.   

    将DataGridVeiwComboBoxColumn 的属性DisplayStyleForCurrentCellOnly=true
    只有单元格获得焦点才会变成下拉框的样式,否则就是DataGridViewTextBoxColumn 的样式
      

  2.   

    但是我这么写报错
          datagridview1.Columns.AddRange(new DataGridViewTextBoxColumn(), new DataGridViewTextBoxColumn(),new DataGridViewComboBoxColumn(), new DataGridViewTextBoxColumn());
                datagridview1.Columns[0].DataPropertyName="编码";
                datagridview1.Columns[0].Name="编码";
                datagridview1.Columns[1].DataPropertyName="名称";
                datagridview1.Columns[1].Name="名称";
                datagridview1.Columns[2].DataPropertyName = "账户";
                datagridview1.Columns[2].Name = "账户";
                ((DataGridViewComboBoxColumn)业务明细.Columns[2]).DisplayStyleForCurrentCellOnly = true;
                ((DataGridViewComboBoxColumn)业务明细.Columns[2]).DataSource = new String[] { "a","b","c" };
    而且显示不出来内容呀。
      

  3.   


    不知道是不是这个意思?select 学校列+'的名称' as 学校列 from 学校表   
      

  4.   

    非要那么麻烦干啥?直接用DataGridVeiwComboBoxColumn 列显示多好.编码的时候直接下拉选择:)
      

  5.   

    DataGridVeiwComboBoxColumn 下拉选择问题是能不能显示两列,
      

  6.   

    编码 名称 学校 性别
    001 赵一 北京中学 男
    002 钱二 北京大学 女平常显示时这样,
    如果编辑时进入学校的单元格
    combobox的列表可以是这样一行一行选择。
      编码 名称
    001 北京中学
    002 北京大学
      

  7.   

    用一事件当点击 DataGridVeiwComboBoxColumn 下拉时 把 所有学校的数据取出来 作为  DataGridVeiwComboBoxColumn 的数据源
      

  8.   

    先定义一个combobox 然后使用datagridview的controls.add()方法 然后就可以实现你所要的效果, 这个在网上可以找到示例代码
      

  9.   

    用一事件当点击 DataGridVeiwComboBoxColumn 下拉时 把 所有学校的数据取出来 作为  DataGridVeiwComboBoxColumn 的数据源