Hi
Adding second combobox next to first combobox in its selectedvaluechanged event ...continuously adds comboboxes. But i need only two comboboxes.So what i have done is added second combobox in txtsheet_Leave event.
Here is the code.
DataGridViewComboBoxColumn colSubAccHead = new DataGridViewComboBoxColumn();
private void txtSheet_Leave(object sender, EventArgs e)
{
......
dgvLoadExp.DataSource = dtDataCSV;
dgvLoadExp.Columns[1].DefaultCellStyle.Format = "dd-MMM-yyyy";
DataGridViewComboBoxColumn colAccHead = new DataGridViewComboBoxColumn();
Expenses objAccHead = new Expenses();
DataTable dt = new DataTable();
dt.Columns.Add("catid", typeof(int));
dt.Columns.Add("Account Head", typeof(string));
dr = dt.NewRow();
dr["catid"] = -1;
dr["Account Head"] = "";
dt.Rows.Add(dr);
dt.Merge(objAccHead.getAccountHead());
colAccHead.DataSource = dt;
colAccHead.HeaderText = "Account Head";
colAccHead.DisplayMember = "Account Head";
colAccHead.ValueMember = "catid";
this.dgvLoadExp.Columns.Insert(4, colAccHead);
this.dgvLoadExp.Columns[4].DataPropertyName = "catid";
colSubAccHead = new DataGridViewComboBoxColumn();
colSubAccHead .HeaderText = "Sub Account Head";
colSubAccHead .DisplayMember = "SubHead";
colSubAccHead .ValueMember = "id";
this.dgvLoadExp.Columns.Insert(5, colSubAccHead);
this.dgvLoadExp.Columns[5].DataPropertyName = "id";
}
private void dgvLoadExp_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dgvLoadExp.CurrentCell.ColumnIndex == 4)
{
ComboBox cmb = e.Control as ComboBox;
cmb.SelectedValueChanged += new EventHandler(cmb_SelectedValueChanged);
}
}
void cmb_SelectedValueChanged(object sender, EventArgs e)
{
Combobox cmb=(ComboBox)sender;
if(cmb.SelectedValue==null) return;
Expenses objSubAccHead = new Expenses();
colSubAccHead.DataSource=objSubAccHead.getSubAccountHead(cmb.SelectedValue.ToString());
}
It shows correct values.
But if the user selects both comboboxes and then changes the first so that the second is no longer valid.
Then it shows an error:
System.ArgumentException:DataGridViewComboBoxCell value is not valid
To Replace this default dialog please handle DataError Event.
What should i do? Any Help would be appreciated.
Thanks