2012-10-15 5 views
-1

J'ai travaillé avec a c# tutorial for beginners to create an address book. J'ai suivi les instructions, et j'ai rencontré deux problèmes.Tutoriel de carnet d'adresses

  1. Lorsque je sélectionne les propriétés de la zone Listview l'événement SelectedIndexChanged manque. J'ai redémarré et rafraîchi le programme plusieurs fois. J'ai écrit directement dans le fichier, et il n'est toujours pas présent. Lorsque vous sélectionnez un contact dans la liste, les zones de texte ne reflètent pas la sélection.

  2. Je soupçonne que cela est lié à l'absence de l'événement SelectedIndexChanged dans l'interface utilisateur. Cela a persisté même lorsque j'ai défini l'événement SelectedIndexChanged dans le code.

Toute aide serait grandement appréciée. Mon code est inférieur à

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.IO; 
using System.Web; 


namespace AddressBook 
{ 
    public partial class AddressBook : Form 
    { 
     public AddressBook() 
     { 
      InitializeComponent(); 
     } 

     List<Person> people = new List<Person>(); 

     private void AddressBook_Load(object sender, EventArgs e) 
     { 
      string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
      if (!Directory.Exists(path + "\\Address Book - Joe")) 
       Directory.CreateDirectory(path + "\\Address Book - Joe"); 
      if (!File.Exists(path + "\\Address Book - Joe\\settings.xml")) 
       File.Create((path + "\\Address Book - Joe\\settings.xml")); 
     } 

     private void btnAdd_Click(object sender, EventArgs e) 
     { 
      Person p = new Person(); 
      p.FirstName = txtFName.Text; 
      p.Address = txtAddress.Text; 
      p.City = txtCity.Text; 
      p.State = comboState.Text; 
      p.ZipCode = txtZip.Text; 
      p.Email = txtEmail.Text; 
      p.PhoneNumber = txtPhone.Text; 
      p.Additional = rtxtAdd.Text; 
      people.Add(p); 
      listView1.Items.Add(p.FirstName); 
      txtFName.Text = ""; 
      txtAddress.Text = ""; 
      txtCity.Text = ""; 
      comboState.Text = ""; 
      txtZip.Text = ""; 
      txtEmail.Text = ""; 
      txtPhone.Text = ""; 
      rtxtAdd.Text = ""; 

     } 

     private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      txtFName.Text = people[listView1.SelectedItems[0].Index].FirstName; 
      txtAddress.Text = people[listView1.SelectedItems[0].Index].Address; 
      txtCity.Text = people[listView1.SelectedItems[0].Index].City; 
      comboState.Text = people[listView1.SelectedItems[0].Index].State; 
      txtZip.Text = people[listView1.SelectedItems[0].Index].ZipCode; 
      txtEmail.Text = people[listView1.SelectedItems[0].Index].Email; 
      txtPhone.Text = people[listView1.SelectedItems[0].Index].PhoneNumber; 
      txtZip.Text = people[listView1.SelectedItems[0].Index].ZipCode; 
      rtxtAdd.Text = people[listView1.SelectedItems[0].Index].Additional; 

     } 

     private void txtFName_TextChanged(object sender, EventArgs e) 
     { 

     } 
    } 

    public class Person 
    { 
     public string FirstName { get; set; } 
     public string Address { get; set; } 
     public string City { get; set; } 
     public string State { get; set; } 
     public string ZipCode { get; set; } 
     public string PhoneNumber { get; set; } 
     public string Email { get; set; } 
     public string Additional { get; set; } 
    } 
} 

Répondre

5

Vous devez cliquer sur l'icône représentant un éclair dans la fenêtre Propriétés pour accéder à l'onglet Événements.
Là, vous verrez l'événement SelectedIndexChanged (en supposant que vous avez sélectionné la commande de droite.

Vous devez lier votre gestionnaire à cet événement pour que votre code à exécuter.

+0

@ webby68 -.. au début de cette vidéo, vous pouvez voir le coup de foudre est déjà sélectionné. – Bobson

+0

Ok, merci c'est exactement ce dont j'avais besoin. J'ai simplement raté un si petit détail. Merci beaucoup. Cela a résolu le problème. – webby68

+0

@ webby68 Ensuite, vous devriez accepter la réponse de SLaks. Voir http://stackoverflow.com/faq#howtoask –

0

SelectedIndexChanged pourrait être listé dans les Propriétés fenêtre OnSelectedIndexChanged Une fois que vous obtenez ce travail de gestionnaire d'événements, les zones de texte doivent être renseignés avec la valeur comme prévu

+0

Non; ce n'est pas. C'est une méthode virtuelle protégée. – SLaks

Questions connexes