Om C# een beetje te ontdekken ben ik me aan het wagen aan een msn-client in C#. Op zich gaat het allemaal best leuk, maar hier kom ik niet uit..
Ik wil een TreeView gebruiken als contactlist. Het toevoegen van een contact moet gebeuren als er een event wordt afgevuurd vanuit de contactlist-class (deze houdt alle info van de contacts bij etc). De code om dit te doen is als volgt:
Bij het uitvoeren hiervan krijg ik deze error:
Is er een andere mogelijkheid? Zo ja, hoe dan? Zo nee, hoe doe ik dat precies met invoke() ??
ps. als ik deze regel: "contactListBox.Items.Add( e.Contact.Name );" weghaal werkt het wel, maar dat lijkt me ook niet helemaal de bedoeling..
Ik wil een TreeView gebruiken als contactlist. Het toevoegen van een contact moet gebeuren als er een event wordt afgevuurd vanuit de contactlist-class (deze houdt alle info van de contacts bij etc). De code om dit te doen is als volgt:
code:
1
2
3
4
5
6
| contactList.ContactAdded += new ContactList.ContactAddedHandler(this.addContact);
public void addContact( ContactList sender, ContactEventArgs e ){
TreeNode node = new TreeNode( e.Contact.Name );
contactListBox.Items.Add( e.Contact.Name );
contactListView.Nodes.Add( node );
} |
Bij het uitvoeren hiervan krijg ik deze error:
Nu moet ik dus met ContactListView.invoke() gaan spelen, maar die wil een delegate hebben (moet ik weer een delegate maken, weer een functie coden om alleen maar iets in de treeview te krijgen, en daar heb ik weinig zin in..An unhandled exception of type 'System.InvalidOperationException' occurred in system.windows.forms.dll
Additional information: The action being performed on this control is being called from the wrong thread. You must marshal to the correct thread using Control.Invoke or Control.BeginInvoke to perform this action.
Is er een andere mogelijkheid? Zo ja, hoe dan? Zo nee, hoe doe ik dat precies met invoke() ??
ps. als ik deze regel: "contactListBox.Items.Add( e.Contact.Name );" weghaal werkt het wel, maar dat lijkt me ook niet helemaal de bedoeling..
[ Voor 0% gewijzigd door brammetje op 07-09-2002 04:42 . Reden: tabs weghalen.. ]