Ich mache ein Kontaktbuch, um zu versuchen, Klassen zu lernen und neue Formulare zu öffnen.Füllen Sie Listbox von Textdatei
Ich versuche, Elemente aus einem Textdokument zu erhalten, um ein Listenfeld mit nur der Zeichenfolge vor dem ersten Trennzeichen aus jeder Zeile aufzufüllen. Wenn ich das Skript ausführe, wird das Windows-Formular angezeigt, aber die Listbox ist leer aber es scheint, dass fünf Elemente darin auswählbar sind. Ein Klick darauf hat keine Wirkung.
Hier ist mein Code für das Formular:
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();
}
}
und hier mein Code für die Klasse ist:
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; }
}
}
}
ich dies zur Lauf zeigen, bekommen kann nicht scheinen; Ich habe jedoch versucht, eine Schaltfläche hinzuzufügen und die Listbox beim Klicken zu füllen, und das schien zu funktionieren.
Ich würde einige frische Augen darauf schätzen.
Dies ist korrekt, als beantwortet markiert. Irgendeine Idee, warum das neue Formular für SelectedIndexChanged nicht auftaucht? Nevermind - Ich habe das Event nicht bekommen. Alles funktioniert wie es jetzt sollte. Danke dir! – Exulansis
@Exulansis Sind Sie sicher, dass es nicht auftaucht? Ich würde annehmen, dass das SelectIndexChanged-Ereignis überhaupt nicht ausgelöst wird oder Sie es nicht sehen. –
Bearbeitet diesen Kommentar - Ich habe das Ereignis nicht festgelegt. Es funktioniert jetzt. Danke für die schnelle Antwort! – Exulansis