好的,所以我在一种形式中有两个列表框,其中一个的内容取决于在另一个中选择了哪个项目。基本上 listbox1 是雇主列表,而 listbox2 是所选雇主的雇员列表。当我选择没有雇员的雇主时,listbox2 中没有预期的项目。但是由于某种原因,当我在选择没有雇员的雇主之后选择另一个雇主时,listbox2 拒绝再次填充雇员列表。我在 listbox2 旁边有一个标签,它会根据 listbox2 中的选定项目自动更新其文本,并且当我单击 listbox2 中的项目应该在的位置时更新。几乎就像计算机在呈现列表框时遇到问题一样。我尝试了 listbox2.Refresh() 之类的方法,但我什至不知道它的作用。所以基本上,列表框工作,它只是没有显示任何东西。以下是一些相关代码:
更改 listbox1 中选定索引时的代码:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listBox1.DataSource = Program.MEmployerList;
listBox1.DisplayMember = "Name";
Employer temps = (Employer)listBox1.SelectedItem;
listBox2.DataSource = temps.Employees();
listBox2.DisplayMember = "Name";
listBox2.Refresh();
label5.Text = temps.CompanyName() + " (" + temps.EmployerID() + ")";
label4.Text = "Phone Number: " + temps.PhoneNumber() + "\nCell Number: " + temps.CellNumber() + "\nAdress: " + temps.StreetAdress() + " - " + temps.City() + ", " + temps.State() + " " + temps.ZipCode() + "\nContact Person: " + temps.ContactPerson();
if (listBox2.Items.Count != 0 && listBox1.Items[0] != null)
{
Employee temped = (Employee)listBox2.SelectedItem;
label4.Text = label4.Text + "\n\nSelected Employee Info: " + temped.Name + "\nPhone Number: " + temped.PhoneNumber() + "\nCell Number: " + temped.CellNumber() + "\nAddress: " + temped.StreetAdress() + " - " + temped.City() + ", " + temped.State() + " " + temped.ZipCode();
}
}
以下是更改 listbox2 中选定索引时的代码:
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
listBox1.DataSource = Program.MEmployerList;
listBox1.DisplayMember = "Name";
Employer temps = (Employer)listBox1.SelectedItem;
listBox2.DataSource = temps.Employees();
listBox2.DisplayMember = "Name";
listBox2.Refresh();
label5.Text = temps.CompanyName() + " (" + temps.EmployerID() + ")";
label4.Text = "Phone Number: " + temps.PhoneNumber() + "\nCell Number: " + temps.CellNumber() + "\nAdress: " + temps.StreetAdress() + " - " + temps.City() + ", " + temps.State() + " " + temps.ZipCode() + "\nContact Person: " + temps.ContactPerson();
if (listBox2.Items.Count != 0 && listBox1.Items[0] != null)
{
Employee temped = (Employee)listBox2.SelectedItem;
label4.Text = label4.Text + "\n\nSelected Employee Info: " + temped.Name + "\nPhone Number: " + temped.PhoneNumber() + "\nCell Number: " + temped.CellNumber() + "\nAddress: " + temped.StreetAdress() + " - " + temped.City() + ", " + temped.State() + " " + temped.ZipCode();
}
}
让我知道是否有任何其他代码可以帮助解决此问题。
更新:请记住,程序正在记录我在 listbox2 中选择不同项目的事实,这些项目只是没有显示,这让我相信这是一个渲染问题。我单击 listbox2 中的条目应该在哪里,并且 label4 更新。