 <p>I think you're working with windows form...</p> <p>And I think the problem is that you want the listbox to be populated with the first item of the combobox when you load for the first time the winform</p> <p>So, in the form_load event you should select the index in the combobox</p> <pre><code>private void EmployeeAttendence_Load(object sender, EventArgs e) { try { table = dbOperation.select("employs.emp_id, employs.emp_name, employs.emp_fname, designation.name from employs inner join designation on designation.id = employs.designation"); listView1.Items.Clear(); foreach (DataRow row in table.Rows) { listView1.Items.Add(row[0].ToString()); listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[1].ToString()); listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[2].ToString()); listView1.Items[listView1.Items.Count - 1].SubItems.Add(row[3].ToString()); listView1.Items[listView1.Items.Count - 1].SubItems.Add("P"); } table = dbOperation.select("* from designation"); comboBox1.Items.Clear(); comboBox1.DataSource = table; comboBox1.DisplayMember = "name"; comboBox1.ValueMember = "id"; comboBox1.SelectedIndex = 0; //this should raise the event comboBox1_SelectedIndexChanged(object sender, EventArgs e) and the listbox will be populated } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } </code></pre>