Items collection cannot be modified when the DataSource property is set Error

Posted by Ahmedsa under C# on 2/6/2017 | Points: 10 | Views : 3814 | Status : [Member] | Replies : 1
I have two windows form

error show when i need to pass data from windows form2 in textbox
to windows form1 combobox
First windows Form
found combobox inside windows form1 and I show data in it in load event of form
public DataTable ShowExceltwoLanguage()
{

OleDbConnection con = new OleDbConnection(connection);


con.Open();
string str = "select MemberID,MemberNameAR + ' - ' + MemberNameEN as MemberName from [MemberAR$]";
OleDbCommand com = new OleDbCommand();
com = new OleDbCommand(str, con);
OleDbDataAdapter oledbda = new OleDbDataAdapter();
oledbda = new OleDbDataAdapter(com);
DataSet ds = new DataSet();
ds = new DataSet();
oledbda.Fill(ds, "[MemberAR$]");
con.Close();
DataTable dt = new DataTable();
dt = ds.Tables["[MemberAR$]"];
return dt;


}


in load event of windows form1 i write as following

 QrClasses qrc = new QrClasses();
DataTable dt = qrc.ShowExceltwoLanguage();
comboBox4.DataSource = dt;
comboBox4.DisplayMember = "MemberName";
comboBox4.ValueMember = "MemberID";


Second windows form
here is error
Items collection cannot be modified when the DataSource property is set show
in button1 of form2 click event

 if (!string.IsNullOrWhiteSpace(textBox1.Text))
{


var cb = ((Form1)Owner).comboBox4;
var index = cb.FindString(textBox1.Text);
if (index == -1)
{
cb.Items.Add(textBox1.Text);// in this line Additional information: Items collection cannot be modified when the DataSource property is set.
index = cb.FindString(textBox1.Text);
if (index > -1)
{
cb.SelectedIndex = index;
Close();
}
}
else
{

cb.SelectedIndex = index;
}
}

so that how to solve that if possible ?




Responses

Posted by: A2H on: 2/8/2017 [Member] [MVP] Silver | Points: 25

Up
0
Down
You are trying to add an item to Combobox after datasource has been set. AFAIK you cannot modify combobox after datasource has been set.

As a solution you can modify and add the items to the datasource itself instead of combobox.

modify your DataTable (dt) and add items to datatable. Once you add your required item rebind the datatable to combobox

Thanks,
A2H
My Blog

Ahmedsa, if this helps please login to Mark As Answer. | Alert Moderator

Login to post response