C# 从列表框中选择对象,并在另一个列表框中显示相应的对象
我有一个Form1,我在其中创建Medic对象并将它们添加到listaMedici1。在Form2中,我创建了Pacient对象,将它们添加到listapacienti2,并将该列表发送到Form1 在Form1中,我有两个列表框:在listbox1_medici中,我显示Medic对象的列表。 我想做的是,当我从listbox1_medici中选择一个Medic对象时,在listbox2_pacienti中,显示所有Pacient对象,其字段codM与所选对象字段codM相同。我试过这种方法,但不起作用。有什么不对劲吗?多谢各位 表格1: 按钮3用于用Medic对象填充listbox1_medici SelectieItem和event SelectedIndexChanged方法应该显示与listbox1\u medici中选择的Medic对象具有相同codM的Pacient对象,但它们不起作用C# 从列表框中选择对象,并在另一个列表框中显示相应的对象,c#,winforms,listbox,C#,Winforms,Listbox,我有一个Form1,我在其中创建Medic对象并将它们添加到listaMedici1。在Form2中,我创建了Pacient对象,将它们添加到listapacienti2,并将该列表发送到Form1 在Form1中,我有两个列表框:在listbox1_medici中,我显示Medic对象的列表。 我想做的是,当我从listbox1_medici中选择一个Medic对象时,在listbox2_pacienti中,显示所有Pacient对象,其字段codM与所选对象字段codM相同。我试过这种方法,
public partial class Form1 : Form
{
public List<Medic> listaMedici1 = new List<Medic>();
public List<Pacient> listaPacienti1 = new List<Pacient>();
public ArrayList specialitati = new ArrayList();
public Form1()
{
InitializeComponent();
specialitati.Add("Endocrinologie");
specialitati.Add("Oftalmologie");
specialitati.Add("Neurologie");
specialitati.Add("Cardiologie");
for (int i = 0; i < specialitati.Count; i++)
comboBox1spec.Items.Add(specialitati[i]);
Medic m1 = new Medic(1, "Ionescu", "Endocrinologie");
Medic m2 = new Medic(2, "Popescu", "Cardiologie");
listaMedici1.Add(m1);
listaMedici1.Add(m2);
}
private void button1_Click(object sender, EventArgs e)
{//this is where i create objects using the textboxes
}
private void button2_Click(object sender, EventArgs e)
{
Form2 form = new Form2(listaMedici1);
// form.listaMedici2 = listaMedici1;
form.ShowDialog();
this.Close();
}
private void button3_Click(object sender, EventArgs e)
{
foreach (Medic m in listaMedici1)
{
if(!(listBox1_medici.Items.Contains(m)))
{
listBox1_medici.Items.Add(m.ToString());
}
}
}
private void SelectieItem(object sender, EventArgs e)
{
if(listBox1_medici.SelectedItems.Count==1)
{
Medic med = listBox1_medici.SelectedItem as Medic;
for(int i=0;i<listaPacienti1.Count;i++)
{
if(med.CodM==listaPacienti1[i].CodM)
{
listBox2_pacienti.Items.Add(listaPacienti1[i].ToString());
}
}
}
}
private void listBox2_pacienti_SelectedIndexChanged(object sender, EventArgs e)
{
SelectieItem(sender, e);
}
}
公共部分类表单1:表单
{
public List listaMedici1=新列表();
public List listaPacienti1=新列表();
public ArrayList specialitati=new ArrayList();
公共表格1()
{
初始化组件();
特别补充(“内分泌学”);
特别条款添加(“金融学”);
特别补充(“神经病学”);
特别条款添加(“心脏病”);
for(int i=0;i 对于(int i=0;这是代码的分配,你能把问题缩小到代码的一个子集吗?@Kami,完成了,我给一些方法添加了注释,只让可能对解决问题有用的主要方法使用数据绑定。首先-你说你在使用列表框
,但在代码中我可以看到组合框
,那么你在使用什么呢。S第二,你能展示一下你的Medic
和Pacient
课程吗?
public partial class Form2 : Form
{
public List<Medic> listaMedici2 = new List<Medic>();
public List<Pacient> listaPacienti2 = new List<Pacient>();
Form1 form1;
public Form2()
{
InitializeComponent();
Pacient p1 = new Pacient(1, "Danut", 2, 230);
Pacient p2 = new Pacient(2, "Cristi", 1, 120);
listaPacienti2.Add(p1);
listaPacienti2.Add(p2);
}
public Form2(List<Medic> listaMedici1)
{
InitializeComponent();
listaMedici2 = listaMedici1;
foreach (Medic med in listaMedici2)
{
comboBox1codmed.Items.Add(med.CodM.ToString());
}
}
private void button1_Click(object sender, EventArgs e)
{//this is where i create Pacient objects using the textboxes
}
private void button2_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
frm.listaPacienti1 = listaPacienti2;
frm.ShowDialog();
this.Close();
}
}