|
Lorsque nous faisons une application de formulaire, il nous arrive parfois d’obtenir des informations sur le formulaire actuel ou d’appeler les contrôles d’autres formulaires. Voici deux méthodes pour y parvenir.
Lorsque nous devons appeler des contrôles provenant d’autres formes dans un formulaire, nous pouvons utiliser des contrôles. CheckForIllegaCrossThreadCalls=false ; Par exemple : Button.CheckForIllegalCrossThreadCalls=false ; Bien sûr, on peut aussi faire en croisement la forme entière Form.CheckForIllegalCrossThreadCalls=false ; Cela nous permet d’accéder aux contrôles ou propriétés de cette forme dans d’autres formes. Ce n’est peut-être pas la méthode la plus sûre, et parfois le débogage nous donne une erreur.
Ici, je vais introduire une autre méthode accessible à travers les threads. Invoke saute sur le fil de discussion du formulaire pour exécuter la fonction sur le délégué
D’abord, nous devons déclarer une commission. public delegate void DelSetTime(object str) ; Ensuite, il nous suffit de préparer la fonction à exécuter, public void setTime(objet force) ; Nous pouvons maintenant placer le délégué sur le fil du formulaire pour exécuter Délégué d=nouveau DelsetTime(setTime) ; Exactement. Invoke(d,Datetime.Now.ToString()) ; De cette façon, nous pouvons obtenir un accès cross-thread.
Chaque formulaire possède un fil de fil de formulaire, qui est principalement responsable de compléter le dessin du formulaire et des contrôles du formulaire Ce fil de discussion est appelé le fil de forme ou le fil principal. Souvent, nous devons ajouter des threads au formulaire pour traiter les données, puis nous pouvons définir ces nouveaux threads créés comme threads en arrière-plan lorsque le formulaire est fermé Le fil de discussion se terminera aussi. ThreadStart ths=nouveau ThreadStart (démo) ; Fil th= nouveau Fil(ths) ; th. Start() ; th. IsBackground=vrai ;
Original : http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html
|