ali_72
سه شنبه 21 مرداد 1393, 14: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;
}
}
یک سری از ستون های دیتاگرید من کمبوباکس هستند
بین این کمبوباکس ها ارتباط وجود داره یعنی وقتی از کمبوباکس اول آیتمی انتخاب شد در کمبوباکس دوم موارد مرتبط لود می شود
این کار مشکلی نبود و به سادگی انجام شد
اما بعد از انتخاب از کمبوباکس اول و فکوس روی سلول بعدی اگه دوباره سراغ کموباکس اول برم بکگراندش مشکی شده
سعی کردم با کدنویسی دوباره بهش 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;
}
}