【发布时间】:2022-01-07 04:30:17
【问题描述】:
我尝试这样做 func Form1_Load 将显示城市列表。 我不知道如何将城市的 3 个函数(JerusalemData()、LondonData()、OttawaData())链接到函数 FillCitiesData(); 问题是它不显示列表,而只显示街道而没有选择城市。另一个问题 - 在 HouseNum_ValueChanged 中,它不显示数字,您还可以输入字母而不仅仅是数字。 这是我的代码 - 如果有人能帮我找到问题,我会很高兴。
namespace PlanYourParty
{
public partial class Form1 : Form
{
List <City> cities;
List <string> streets;
public Form1()
{
InitializeComponent();
FillCitiesData();
}
public void FillCitiesData()
{
cities = new List<City>();
cities.Add(new City() { Code = "123", Name = "Jerusalem" });
cities.Add(new City() { Code = "456", Name = "London" });
cities.Add(new City() { Code = "789", Name = "Ottawa" });
JerusalemData();
LondonData();
OttawaData();
}
private void Form1_Load(object sender, EventArgs e)
{
FillCitiesData();
cmbCity.DataSource = cities;
cmbCity.DisplayMember = "Name";
cmbCity.ValueMember = "Code";
cmbCity.SelectedIndexChanged += cmbCity_SelectedIndexChanged;
}
public void JerusalemData()
{
streets = new List<string>();
cmbStreet.Items.Clear();
cmbStreet.Items.Add("Admond Peleg");
cmbStreet.Items.Add("Pardes");
cmbStreet.Items.Add("Nayman");
}
public void LondonData()
{
streets = new List<string>();
cmbStreet.Items.Clear();
cmbStreet.Items.Add("Oxford Street");
cmbStreet.Items.Add("Piccadilly");
cmbStreet.Items.Add("Highfield Ave");
}
public void OttawaData()
{
streets = new List<string>();
cmbStreet.Items.Clear();
cmbStreet.Items.Add("Riverside Drive");
cmbStreet.Items.Add("Ontario Highway");
cmbStreet.Items.Add("Moodie Drive");
}
private void cmbCity_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender != null && sender as City != null)
{
string code;
code = (sender as City).Code;
if (code == "123")
{
JerusalemData();
}
else if (code == "456")
{
LondonData();
}
else OttawaData();
}
}
private void cmbStreet_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void domainUpDownHouseNumber_SelectedItemChanged(object sender, EventArgs e)
{
}
private void Form1_Load_1(object sender, EventArgs e)
{
}
}
【问题讨论】:
-
该街道数据属于各个城市对象。为每个城市创建实际的命名变量,并在 City 对象定义中添加
List<String> Streets属性。然后,您可以将这些数据存储在那里,而不是将其直接插入组合框中。然后您可以从cmbCity_SelectedIndexChanged中的选定对象中获取数据。在该函数中,将sender as City分配给一个变量,这样您就可以更轻松地使用它的属性。