PDA

View Full Version : تغییر back color کمبوباکس دیتاگرید ویو پس از اتمام رویداد selectedindexchange و focus روی سلول دیگر



ali_72
سه شنبه 21 مرداد 1393, 13:30 عصر
سلام
یک سری از ستون های دیتاگرید من کمبوباکس هستند
بین این کمبوباکس ها ارتباط وجود داره یعنی وقتی از کمبوباکس اول آیتمی انتخاب شد در کمبوباکس دوم موارد مرتبط لود می شود
این کار مشکلی نبود و به سادگی انجام شد
اما بعد از انتخاب از کمبوباکس اول و فکوس روی سلول بعدی اگه دوباره سراغ کموباکس اول برم بکگراندش مشکی شده

سعی کردم با کدنویسی دوباره بهش back color بدم ولی فایده نداشت


122193



privatevoid _dgv_EditingControlShowing(object sender,DataGridViewEditingControlShowingEventArgs e){
if(_dgv.CurrentRow!=null)
{
ComboBox col1Combo = e.ControlasComboBox;
if(col1Combo !=null)
{
if(_dgv.CurrentCell.ColumnIndex==1)
{
col1Combo.SelectedIndexChanged+= col1Combo_SelectedIndexChanged;
}
}
}
}
privatevoid col1Combo_SelectedIndexChanged(object sender,EventArgs e)
{
if(_dgv.CurrentCell.ColumnIndex==1)
{

DataGridViewComboBoxCellColumn_ModemList=(DataGrid ViewComboBoxCell)this._dgv.CurrentRow.Cells[2];
Column_ModemList.Items.Clear();



_dgv.CommitEdit(DataGridViewDataErrorContexts.Comm it);

((ComboBox)sender).BackColor=Color.white;
if(_dgv.CurrentCell.EditedFormattedValue.ToString( )=="aa")
{
Column_ModemList.Items.Add("bb");
Column_ModemList.Items.Add("cc");
}
elseif(_dgv.CurrentCell.EditedFormattedValue.ToStr ing()=="hh")
{
Column_ModemList.Items.Add("ss");
}
elseif(_dgv.CurrentCell.EditedFormattedValue.ToStr ing()=="fff")
{
Column_ModemList.Items.Add("rrr");
}
((ComboBox)sender).BackColor=Color.white;

_dgv.CurrentCell.Style.BackColor=System.Drawing.Co lor.white;
}
}

privatevoid _dgv_CurrentCellDirtyStateChanged(object sender,EventArgs e)
{
if(_dgv.IsCurrentCellDirty)
{
_dgv.CommitEdit(DataGridViewDataErrorContexts.Comm it);
}
}

privatevoid _dgv_CellValueChanged(object sender,DataGridViewCellEventArgs e)
{
if(e.RowIndex>=0)
{
_dgv.CurrentCell.Style.BackColor=System.Drawing.Co lor.white;
}
}