0

我有一个小程序。它包括一个列表框和几个文本框。列表框中的元素很少,根据所选索引,它会将相应的值输出到文本框中。

代码示例: http: //notepad.cc/share/AGh5zLNjfJ

我想使用一个函数将值打印到文本框中,而不是在 switch case 中一遍又一遍地输入它们。

像这样的东西:

switch(personList.SelectedIndex)
{
    case 0:
        output(person1);
        break;
    case 1;
        output(person2);
        break;
}

我无法使用我创建的函数传递 person 对象并访问其属性。求救。

4

3 回答 3

1

Instead of switching by selected index, assign list of persons as data source to listbox. When selected index changes - show data of selected item in textboxes:

// 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;

Then on selecting person from list:

private void personList_SelectedIndexChanged(object sender, EventArgs e)
{
    Person person = (Person)personList.SelectedItem;
    output(person);
}

Keep in mind that in C# we use PascalNaming for methods and properties.

于 2013-08-20T16:17:10.560 回答
0

你的输出功能和这个类似吗??

public void output(Person p)
{
    idBox.Text = p.id;
    nameBox.Text = p.name;
    lNameBox.Text = p.lName;
}

您可以按以下方式获取所选项目(如果您已将列表框与人员列表绑定为数据源)

Person p = (Person)listBox1.SelectedItem;
于 2013-08-20T16:20:30.533 回答
0

从你的代码我猜你需要一个函数。你可以这样做

private void Output(Person p)
{
     idBox.Text = p.id;
     fnameBox.Text = p.name;
     lNameBox.Text = p.lName;
}

并像你打电话一样调用它。

于 2013-08-20T16:22:56.127 回答