using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.IO;
namespace AdressBook_2
{
public partial class Form1 : Form
{ //Vägen till filen
public string path = @C:\temp\AdressBok.txt;
//Listan där läggs till användaren
public List<Person> personer = new List<Person>();
bool start = false;
public Form1()
{
InitializeComponent();
}
private void Avslutaknap_Click(object sender, EventArgs e)
{
//Stänger ner programmet
this.Close();
}
private void Rensaknap_Click(object sender, EventArgs e)
{
//Rensar listBox
listBox1.Items.Clear();
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
}
public void Form1_Load(object sender, EventArgs e)
{
//Läser allt från txt filen och lägger till listan
Person load;
StreamReader sr = new StreamReader(@C:\temp\AdressBok.txt);
string line = "";
while (!sr.EndOfStream)
{
load= new Person();
line = sr.ReadLine();
var array = line.Split(',');
load.Name = array[0];
load.Gatu = array[1];
load.Postnr = array[2];
load.Postort = array[3];
load.Telefon = array[4];
load.Email = array[5];
personer.Add(load);
}
sr.Close();
//Ändrad FormBorderStyle till FixedSingle så att man kan inte ändra storleken
//samt MaximizeBox to False
//Skapar txt fillen
var file = @C:\temp\AdressBok.txt;
if (!File.Exists(file))
File.Create(file);
}
private void Registeraknap_Click(object sender, EventArgs e)
{
//Läser in klassen och läggs till värde
Person person = new Person(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text,
textBox6.Text);
personer.Add(person);
//Om Register metoden går genom då rensas alla rutor
if (person.Register())
{
listBox1.Items.Add(person.Name);
//Rensar textbox efter man har tryck register kanpen
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
textBox6.Clear();
}
}
private void Ladda_uppknap_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
//Vissar allt från txt filen i listBoxen
List<string> lines = File.ReadAllLines(path).ToList();
foreach (string line in lines)
{
listBox1.Items.Add(line);
}
}
private void Sökknap_Click(object sender, EventArgs e)
{
//Tömmer tidigare sökresultat
listBox1.Items.Clear();
string text = textBox7.Text;
if (text == "")
{
MessageBox.Show("Finns ej");
}
else
{
foreach (Person person in personer)
{
if (person.Name.ToLower().Contains(text.ToLower()))
{
listBox1.Items.Add(person.Name);
textBox1.Text = person.Name;
textBox2.Text = person.Gatu;
textBox3.Text = person.Postnr;
textBox4.Text = person.Postort;
textBox5.Text = person.Telefon;
textBox6.Text = person.Email;
textBox7.Clear();
}
}
}
}
private void Ta_bortknap_Click(object sender, EventArgs e)
{
}
private void Sparaknap_Click(object sender, EventArgs e)
{
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
foreach(Person person in personer)
{
if (listBox1.SelectedItem == person.Name.ToString()|| listBox1.SelectedItem == person.Gatu.ToString() || listBox1.SelectedItem == person.Postnr.ToString()||
listBox1.SelectedItem == person.Postort.ToString()|| listBox1.SelectedItem == person.Telefon.ToString() || listBox1.SelectedItem == person.Email.ToString())
{
MessageBox.Show(person.Name + " " + person.Gatu + " " + person.Postnr + " " + person.Postort + " " + person.Telefon + " "
+ person.Email);
textBox1.Text = person.Name.ToString();
textBox2.Text = person.Gatu.ToString();
textBox3.Text = person.Postnr.ToString();
textBox4.Text = person.Postort.ToString();
textBox5.Text = person.Telefon.ToString();
textBox6.Text = person.Email.ToString();
}
}
}
}
}
Jag försöker adda ta bort knappen och spara knappen men så fort jag försöker att skriva någon kod då får jag oftast fel att det går inte att : „Unable to cast object of type 'System.String' to type 'AdressBook_2.Person'.”
private void Ta_bortknap_Click(object sender, EventArgs e)
{
// personer.Remove((Person)listBox1.SelectedItem).ToString();
personer.Remove((Person)listBox1.SelectedItem);
listBox1.DataSource = null;
listBox1.DataSource = personer;
start = true;
foreach (var c in this.Controls.OfType<TextBox>())
{
c.Clear();
}
}