我有一个小程序。它包括一个列表框和几个文本框。列表框中的元素很少,并且根据所选索引,它会将相应的值输出到文本框中。
代码示例:http://notepad.cc/share/AGh5zLNjfJ
我想使用函数将值打印到文本框中,而不是在切换情况下反复输入它们。
这样的事情:
switch(personList.SelectedIndex)
{
case 0:
output(person1);
break;
case 1;
output(person2);
break;
}
我无法传递person对象并使用我创建的函数访问其属性。 SOS。
答案 0 :(得分:1)
不是按所选索引切换,而是将人员列表作为数据源分配给列表框。选择的索引更改时 - 显示文本框中所选项目的数据:
// that's just creating list of People with NBuilder
var people = Builder<Person>.CreateListOfSize(5).Build().ToList();
personList.DisplayMember = "fname"; // set name of property to be displayed
personList.DataSource = people;
然后从列表中选择人员:
private void personList_SelectedIndexChanged(object sender, EventArgs e)
{
Person person = (Person)personList.SelectedItem;
output(person);
}
请记住,在C#中,我们使用PascalNaming作为方法和属性。
答案 1 :(得分:0)
你的输出函数是否与此类似?
public void output(Person p)
{
idBox.Text = p.id;
nameBox.Text = p.name;
lNameBox.Text = p.lName;
}
您可以按以下方式获取所选项目(如果您已将列表框限定为人员列表作为数据源)
Person p = (Person)listBox1.SelectedItem;
答案 2 :(得分:0)
从你的代码中我猜你需要一个功能。你可以这样做
private void Output(Person p)
{
idBox.Text = p.id;
fnameBox.Text = p.name;
lNameBox.Text = p.lName;
}
并像打电话一样打电话。