C#将项目添加到列表中,然后将列表项添加到列表框
问题描述:
我是C#课程的学生,这是我对课程的入门指导,请耐心等待。当按下New按钮时,将使用名称和电话值创建一个CPerson对象,并将该对象添加到列表<>中。C#将项目添加到列表中,然后将列表项添加到列表框
class CPerson
{
private string m_sName;
private string m_sPhone;
public string Name
{
get { return this.m_sName; }
set
{
this.m_sName = value;
}
}
public string Phone
{
get { return this.m_sPhone; }
set
{
this.m_sPhone = value;
}
}
}
public partial class Form1 : Form
{
private List<CPerson> PhoneNum = new List<CPerson>(); //<CPerson> or <string>?
public Form1()
{
InitializeComponent();
newbutton.Enabled = false;
changebutton.Enabled = false;
savebutton.Enabled = false;
}
private void newbutton_Click(object sender, EventArgs e)
{
changebutton.Enabled = true;
savebutton.Enabled = true;
PhoneNum.Add(new CPerson { Name = Namebox.Text + " : ", Phone = phonebox.Text });
listBox1.Items.Add(PhoneNum); //text = "Collection"
}
分配表示“该CPerson的ToString()重写将用于显示在列表框中的姓名和电话号码”作为所示的上述图像中,这是我不一定明白,但我猜我必须使用这样的东西?
CPerson data = new CPerson();
data.ToString();
无论哪种方式,因为代码现在,所有我在列表框中得到的是“(集合)”。任何帮助,将不胜感激!
答
这就是要求重写ToString()方法。你可以这样说:
class CPerson
{
private string m_sName;
private string m_sPhone;
public string Name
{
get { return this.m_sName; }
set
{
this.m_sName = value;
}
}
public string Phone
{
get { return this.m_sPhone; }
set
{
this.m_sPhone = value;
}
}
public override string ToString()
{
return Name + ": " + Phone;
}
我没有添加到列表的右边的部分,但我相信你可以做以下使用的ToString():
listBox1.Items.Add(data.ToString());
答
关闭..
class CPerson
{
private string m_sName;
private string m_sPhone;
public string Name
{
get { return this.m_sName; }
set
{
this.m_sName = value;
}
}
public string Phone
{
get { return this.m_sPhone; }
set
{
this.m_sPhone = value;
}
}
public override string ToString()
{
return Name + ": " + Phone;
}
}
}
'listBox1.DataSource = PhoneNum;'BindingList会更好。 –
LarsTech
谢谢!迄今为止效果很好 – user7115764