我正在制作一本联系簿,试图学习课程,并开设新表格.
我试图从文本文档中获取项目以填充列表框,仅使用每行第一个分隔符之前的字符串.当我运行脚本时,会出现Windows窗体,但列表框是空白的,但其中似乎有五个可选的项目.点击它们没有任何效果.
这是我的表单代码:
namespace AddressBook
{
public partial class formMain : Form
{
//Pub vars
string selectedName = "";
List<string> values = new List<string>();
public formMain()
{
InitializeComponent();
}
public void formMain_Load (object sender, EventArgs e)
{
//load values from file
try
{
StreamReader inputFile;
inputFile = File.OpenText("EmpRoster.txt");
string lines;
while (!inputfile.EndOfSteam)
{
lines = inputFile.ReadLine();
string[] tokens = lines.Split(',');
PersonEntry person = new PersonEntry(tokens[0], tokens[1], tokens[2]);
values.Add(person.Name + ";" + person.Email + ";" + person.Phone);
listOuput.Items.Add(person.Name);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//Selected index change
private void listOutput_SelectedIndexChanged(object sender, EventArgs e)
{
selectedName = listOutput.SelectedItem.ToString();
Form newForm = new Form();
Label label1 = new Label();
label1.Size = new Size(270, 75);
label1.Location = new Point(10, 10);
foreach (string str in values)
{
if (str.Containes(selectedName))
{
string[] tokens = str.Split(';');
label1.text += "Name: " + tokens[0] + "\n" + "Email: " + tokens[1] + "\n" + "Phone Number: " + tokens[2] + "\n";
}
}
newForm.Controls.Add(label1);
newForm.ShowDialog();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的班级代码:
namespace AddressBook
{
public class PersonEntry
{
private string _name;
private string _email;
private string _phone;
public PersonEntry(string name, string email, string phone)
{
_name = "";
_email = "";
_phone = "";
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public string Email
{
get { return _email; }
set { _email = value; }
{
public string Phone
{
get { return _phone; }
set { _phone = value; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法在跑步中看到这个; 但是,我确实尝试添加一个按钮并在点击时填充列表框,这似乎有效.
我很欣赏这一点.
问题在于如何实例化您的类.如果你看一下构造函数:
public PersonEntry(string name, string email, string phone)
{
_name = "";
_email = "";
_phone = "";
}
Run Code Online (Sandbox Code Playgroud)
您不是存储接收的值,而是完全忽略它们.只需将您的课程简化为:
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public PersonEntry(string name, string email, string phone)
{
Name = name;
Email = email;
Phone = phone;
}
Run Code Online (Sandbox Code Playgroud)
您无需生成支持字段,这些字段会自动为您完成.
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |