我在下拉控件中加了此事件,目地是当我在第一个datagridviewcomboboxcolumn中选择某一个指定值 的时候,第二个datagridviewcomboboxcolumn 会自动选择第一个值,但两个框选来选去的时候 ,会出现,
如图的BUG   http://hi.csdn.net/space-4312833-do-album-picid-914548-goto-down.html
,不知道怎么解决,请各们有劳了,谢谢!        private void dgvVar_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (this.dgvVar.CurrentCell != null && this.dgvVar.CurrentCell.OwningColumn.Name == "colVarType")
            {
                ComboBox cb = e.Control as ComboBox;
                cb.SelectedIndexChanged += new EventHandler(FormIntelligenceDocument_SelectedIndexChanged);
            }
        }        void FormIntelligenceDocument_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBox cb = sender as ComboBox;
            if (cb != null)   
         {
                if (cb.Text == "其它字典")
                    this.dgvVar.CurrentRow.Cells["colVarZD"].Value = this._VarTypeZD.Rows[0]["Code"];
                else
                    this.dgvVar.CurrentRow.Cells["colVarZD"].Value = null;
                ////让变量类型失去焦点
                //this.dgvVar.EndEdit();                //(sender as ComboBox).SelectedIndexChanged -= new EventHandler(FormIntelligenceDocument_SelectedIndexChanged);
            }
        }

解决方案 »

  1.   

    楼主,你把每个可能设置背景色的地方,都检查一下:是不是人为设成了黑色!
    BackgroundColor 、AlternatingRowsDefaultCellStyle 、ColumnHeadersBorderStyle 、ColumnHeadersDefaultCellStyle 、DefaultCellStyle 
      

  2.   


    额 
    在整个窗体中 都没有设置过背景色,,这种改变背景色的情况 ,也是有时候有,有时候没有的情况 下才会有的, 
    并且 ,还是因为第二个 datagridviewcomboboxcolumn  触 发的。。触 发后, 第一个datagridviewcomboboxcolumn  也会改变自己的背景色
    太无语了
      

  3.   

    就设置了这两个属性    
            dgvCbx.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
            dgvCbx.FlatStyle = FlatStyle.Popup;
      

  4.   

    还加了这个设置
    this.dgvVar.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
    还有这个
    this.dgvVar.DataError += delegate(object sender, DataGridViewDataErrorEventArgs e) { };
    难道,,大家都没有遇到过这样的问题吗》?
      

  5.   

           private void dgvVar_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
    cb.SelectedIndexChanged -= new EventHandler(FormIntelligenceDocument_SelectedIndexChanged);            if (this.dgvVar.CurrentCell != null && this.dgvVar.CurrentCell.OwningColumn.Name == "colVarType")
                {
                    ComboBox cb = e.Control as ComboBox;
                    cb.SelectedIndexChanged += new EventHandler(FormIntelligenceDocument_SelectedIndexChanged);
                }
            }
    养成习惯 不要多次加载事件
      

  6.   

    这可能是微软的一个bug。在dropdown和gotFoucs事件里添加上一句话: cb.BackColor = Color.White;就行了。
    详见这里:http://www.geekpedia.com/Thread12474_A-Bug-Of-Black-Background-For-Combo-Box-Column-In-DataGridView.html
      

  7.   

    如下链接说的很详细了 我试过了OK的
    http://www.geekpedia.com/Thread12474_A-Bug-Of-Black-Background-For-Combo-Box-Column-In-DataGridView.html