如何让一个列表框根据第一个选择显示数据?
How to have one list box present data based on selection of first one?
我正在制作一个带有 2 个列表框的 windows 表单。我的计划是让用户可以从两个列表框中选择 add/edit/remove。当用户从第一个列表中选择一个选项(选择汽车名称,即马自达 3)时,第二个列表框将显示将根据第一个选择输入的所有数据(我的想法是保留服务记录每辆车;此框也将有 add/edit/remove 的选项)。我应该如何让第二个列表框根据第一个列表框的选择显示项目?
多维数组是执行此操作的最佳方法吗?我还计划有一个图片框,可以显示用户可以上传的图片,并且可以根据第二个列表框的选择进行查看。
谢谢
能否请您提供您目前拥有的代码?在不知道的情况下,我会说您可以通过第一个列表框中的更改调用一个函数
`private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(listBox1.Text == "mazda 3")
//do something here with listbox2
}`
我不太清楚你到底想做什么,但据我了解,你有一份汽车清单,对于该清单上的每辆车,都有一份服务记录清单?
如果是这种情况,您可以这样做:
public partial class Form1 : Form
{
List<string> cars = new List<string>()
{
"Mazda 3",
"Mazda 6",
"VW Polo",
"VW Golf"
};
List<string> Mazda3 = new List<string>()
{
"12-04-2008",
"14-03-2010",
"20-05-2012",
};
List<string> Mazda6 = new List<string>()
{
"12-08-2012",
"14-07-2014",
"03-09-2016",
};
List<string> VWPolo = new List<string>()
{
"Some Date",
"Some Date",
"Some Date",
};
List<string> VWGolf = new List<string>()
{
"Some Date",
"Some Date",
"Some Date",
};
List<List<string>> ServiceLists = new List<List<string>>();
public Form1()
{
InitializeComponent();
ServiceLists.Add(Mazda3);
ServiceLists.Add(Mazda6);
ServiceLists.Add(VWPolo);
ServiceLists.Add(VWGolf);
Cars_listBox.DataSource = cars;
}
private void Cars_listBox_SelectedIndexChanged(object sender, EventArgs e)
{
ServiceRecords_listBox.DataSource = ServiceLists[Cars_listBox.SelectedIndex];
}
}
在此示例中,列表框是在设计器中创建的
我正在制作一个带有 2 个列表框的 windows 表单。我的计划是让用户可以从两个列表框中选择 add/edit/remove。当用户从第一个列表中选择一个选项(选择汽车名称,即马自达 3)时,第二个列表框将显示将根据第一个选择输入的所有数据(我的想法是保留服务记录每辆车;此框也将有 add/edit/remove 的选项)。我应该如何让第二个列表框根据第一个列表框的选择显示项目?
多维数组是执行此操作的最佳方法吗?我还计划有一个图片框,可以显示用户可以上传的图片,并且可以根据第二个列表框的选择进行查看。
谢谢
能否请您提供您目前拥有的代码?在不知道的情况下,我会说您可以通过第一个列表框中的更改调用一个函数
`private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(listBox1.Text == "mazda 3")
//do something here with listbox2
}`
我不太清楚你到底想做什么,但据我了解,你有一份汽车清单,对于该清单上的每辆车,都有一份服务记录清单?
如果是这种情况,您可以这样做:
public partial class Form1 : Form
{
List<string> cars = new List<string>()
{
"Mazda 3",
"Mazda 6",
"VW Polo",
"VW Golf"
};
List<string> Mazda3 = new List<string>()
{
"12-04-2008",
"14-03-2010",
"20-05-2012",
};
List<string> Mazda6 = new List<string>()
{
"12-08-2012",
"14-07-2014",
"03-09-2016",
};
List<string> VWPolo = new List<string>()
{
"Some Date",
"Some Date",
"Some Date",
};
List<string> VWGolf = new List<string>()
{
"Some Date",
"Some Date",
"Some Date",
};
List<List<string>> ServiceLists = new List<List<string>>();
public Form1()
{
InitializeComponent();
ServiceLists.Add(Mazda3);
ServiceLists.Add(Mazda6);
ServiceLists.Add(VWPolo);
ServiceLists.Add(VWGolf);
Cars_listBox.DataSource = cars;
}
private void Cars_listBox_SelectedIndexChanged(object sender, EventArgs e)
{
ServiceRecords_listBox.DataSource = ServiceLists[Cars_listBox.SelectedIndex];
}
}
在此示例中,列表框是在设计器中创建的