/// <param name="sender"></param> /// <param name="e"></param> private void dgvSelectFun_EditingControlShowing ( object sender , DataGridViewEditingControlShowingEventArgs e ) DataGridView dgv = sender as DataGridView ; 判断相应的列 if ( dgv . CurrentCell . GetType ( ) . Name == "DataGridViewComboBoxCell" && dgv . CurrentCell . RowIndex != - 1 ) DataGridViewComboBoxCell combox = dgv . CurrentCell as DataGridViewComboBoxCell ; combox . DataSource = FunsLib [ dgv . CurrentCell . RowIndex ] . FuncSnALL ; //给这个DataGridViewComboBoxCell加上下拉事件 ( e . Control as ComboBox ) . SelectedIndexChanged += new EventHandler ( ComboBox_SelectedIndexChanged ) ; /// <summary> /// 组合框事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void ComboBox_SelectedIndexChanged ( object sender , EventArgs e ) ComboBox combox = sender as ComboBox ; //这里比较重要 combox . Leave += new EventHandler ( combox_Leave ) ; //在这里就可以做值是否改变判断 if ( combox . SelectedItem != null ) Thread . Sleep ( 100 ) ; catch ( Exception ex ) MessageBox . Show ( ex . Message ) ; /// <summary> /// 离开combox时,把事件删除 /// 这一步比较重要,如果不加,会导致selectedchanged事件一直触发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void combox_Leave ( object sender , EventArgs e ) ComboBox combox = sender as ComboBox ; //做完处理,须撤销动态事件 combox . SelectedIndexChanged -= new EventHandler ( ComboBox_SelectedIndexChanged ) ;

方法2:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = sender as DataGridView;

        //判断相应的列
        if (dgv.CurrentCell.GetType().Name == "DataGridViewComboBoxCell" && dgv.CurrentCell.RowIndex != -1)
             //此处绑定数据源,或者直接清除下拉列表,重新添加
            DataGridViewComboBoxCell combox = dgv.CurrentCell as DataGridViewComboBoxCell;
            combox.DataSource = FunsLib[i].FuncSnALL;//FunsLib:List<List<string>>
            //combox.Items.Clear();
            //combox.Items.AddRange(new string[] { "A1.", "A2." });//此处需要判断,根据对应行号,添加对应下拉列表,在此不再赘述
                    c# datagridview列形式为Combobox,每行下拉选项不一样方法1: /// &lt;summary&gt;        /// 首先给这个DataGridView加上EditingControlShowing事件        /// &lt;/summary&gt;        /// &lt;param name="sender"&gt;&lt;/param&gt;        /// &lt;param name="e"&gt;&lt;/param&gt;     
				
灵活:数据源下拉框内显示的名、可搜索关键字等可自由定义 方便:可输可选/支持键盘操作/模糊过滤/自动完成匹配 标准:通过继承combobox实现,可单独使用,也可嵌入datagridview使用 水平有限,欢迎大家多提宝贵意见,共同学习 本控件以“随风飘散”在 http://www.cnblogs.com/CodeAnyWhere/archive/2007/09/03/880780.html中的示例代码为基础改进而来,在此感谢!.
昨天和今天在做c#datagridviewDataGridViewComboBoxColumn,为什么做了这么久,因为是总想使用datatable作为datasource进行绑定到DataGridViewComboBoxColumn上,但是实际上不能这样,而是datasource就是数据,DataGridViewComboBoxColumn只是datagridview在绑定数据后,添加到其中,它里面的数据设置值,在datasource中获取,按照某种规则,放进去即可 public partial cla..
有时需要在datagridview中设置combox输入项目,如果想要设置好的combox数据项没有combox的立体效果,只需要在输入时才出现选择下拉的效果,可以如下设置: 1 把combox的属性display style设为nothing 2 在datgridviewer中的EditingControlShowing事件中增加如下代码 private void dgvPP...
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 在学习了之前的教程后,不知道大家有没有注意过,从下拉框单元格选择的时候,总共会点三下鼠标才能选中下拉框中的一个值:第一次选中单元格,第二次打开下拉框,第三次才能选中值。比一般的combobox选择多一个步骤。 要解决以上问题只需要方法很简单,当单元格获得焦点的时候,发送F4即可,具体代码如下:
DataGridView在很多时候会绑定数据源,如dgvList.DataSource = table; 这个时候要注意,如果DataGridView的某些数据源属性DataPropertyName设置了,但是有些没有设置,就像你想象的希望把绑定数据源用table显示。在绑定数据源之后的显示上,完全没有问题,很正常。 但是,其实DataGridView索引就变了,绑定数据源会往
2:替换datagridview控件内容 +自定义下拉控件 private void dataGridView1_CurrentCellChanged(object sender, EventArgs e) if (dataGridView1.CurrentCell == null) return;