我采用了这样的绑定下拉事件 /// <summary>
        /// 给指定列的下拉框添加SelectedIndexChanged事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvPrinter_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            //给指定列的下拉框添加SelectedIndexChanged事件
            if (dgvPrinter.CurrentCell.RowIndex != -1 && dgvPrinter.CurrentCell.ColumnIndex == 0)
            {
                ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(v2_SelectedIndexChanged);
            }
        }        /// <summary>
        /// 分道号下拉事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void v2_SelectedIndexChanged(object sender, EventArgs e)
        {
            // 遍历出所选的行
            DataRow[] rows = XmlInfoManager.GetPrintDate().Select("Id = '" + ((ComboBox)sender).SelectedValue.ToString() + "'");            // 设置在选择行的下拉框上
            dgvPrinter.Rows[dgvPrinter.CurrentCell.RowIndex].Cells["PrinterNumber"].Style.NullValue = rows[0].ItemArray[1].ToString();            //这里写要处理的代码最后要把事件删除,不然会出问题
            ((ComboBox)sender).SelectedIndexChanged -= new EventHandler(v2_SelectedIndexChanged);
        }
但是这样选的第一次可以起到作用然后把事件删除了 而现在焦点还在下拉框上再次点击没有激发dgvPrinter_EditingControlShowing这个事件,所以就没有下拉事件了 。。这个应该怎么办呢?

解决方案 »

  1.   

    求高手帮忙 小弟对winform 不是很熟悉。。
      

  2.   


    我不是很了解winform 请能讲解的详细点不 感激不尽
      

  3.   


    winform 真的不是很熟悉。。哎。。帮帮我吧
      

  4.   

    http://www.cnblogs.com/ewyb/archive/2010/08/31/1813406.html
      

  5.   

    在选择下拉的那个事件里面试试执行
    dataGridView1.EndEdit();
      

  6.   

    。csdn的大神吗呢?来个高手解决下。
      

  7.   

    你应该离开这个单元格,然后再把currentcell 改回来。
      

  8.   


    if (dgvPrinter.CurrentCell.RowIndex != -1 && dgvPrinter.CurrentCell.ColumnIndex == 0)
    {
        ((ComboBox)e.Control).SelectedIndexChanged -= new EventHandler(v2_SelectedIndexChanged);
        ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(v2_SelectedIndexChanged);
    }