Jag har en klass som heter "Modules". Där hämtar information från en XML fil och stoppar in i en ListView. Man ska kunna lägga till fler information i XML-filen så därför har jag skapat en ny form som heter "Add" som jag har kopplat en meny till. Du skriver att "ListView ligger ju i klassen "Modules"" så jag antar att "Modules" är ett formulär. Därmed kan du sätta propertyn Modifier till Public på din ListView. En annan variant som kräver mer kod kommer här :ListView problem
<code>
this.MenuItemAdd.Click += new System.EventHandler(this.Add);
private void Add(object sender, System.EventArgs e)
{
Add ad = new Add();
ad.ShowDialog();
}
</code>
Så långt fungerar allting.
men....
I formen "Add" ska man kunna lägga till nya rader i min ListView som därefter skriver om hela XML filen av innehållet som finns i ListView.
ListView ligger ju i klassen "Modules" och själva "lägg till ny rad delen" ligger i klassen "Add" och där kommer problemet.
Jag trodde att det skulle vara enkelt och göra såhär, men det gick ju inte :(
<code>
private void Save(object sender, System.EventArgs e)
{
Modules.ListUsersItem = new ListViewItem(tbName.Text);
Modules.ListUsersItem.SubItems.Add(tbEmail.Text);
Modules.ListUsersItem.SubItems.Add(tbCompany.Text);
Modules.ListUsersItem.SubItems.Add(tbPhone.Text);
Modules.ListUsers.Items.Add(ListUsersItem);
}
</code>
Hoppas någon kan hjälpa mig :)Sv: ListView problem
private void Add(object sender, System.EventArgs e)
{
Add ad = new Add(this); ' <---- Skicka med en referens här
ad.ShowDialog();
}
I formuläret Add...
public class Add() : System.Windows.Forms.Form
{
private Modules mParent;
public Add(Modules parent) '<----- Formulärets konstruktor
{
mParent=parent;
}
}
Slutligen :
private void Save(object sender, System.EventArgs e)
{
mParent.ListUsersItem = new ListViewItem(tbName.Text);
mParent.ListUsersItem.SubItems.Add(tbEmail.Text);
mParent.ListUsersItem.SubItems.Add(tbCompany.Text);
mParent.ListUsersItem.SubItems.Add(tbPhone.Text);
mParent.ListUsers.Items.Add(ListUsersItem);
}