2016-08-01 6 views
0

Ich habe this Tutorial folgen, um die Elemente auf einer Windows-Formularseite zu benennen. Nach dem, was ich gesammelt habe, generiert das Formular automatisch Methoden basierend auf dem Namen der Elemente im Designer-Formular.C# -Designerformular aktualisiert keine Methoden von Formularobjekten?

Während die meisten Textfelder, Beschriftungen ihren Methodennamen jedoch aktualisieren, wenn ich auf sie klicke und die EINGABETASTE drücken, verweisen einige von ihnen immer noch auf den Standardnamen.

Im angehängten Bild bleibt die Bezeichnung "Option" als "label3_clicked" erhalten.

Sehr geschätzt.

Attached image of problem.

+1

Beim Erzeugen (Registrieren) des 'Ereignisses' eines' Control' VS nehmen Sie 'Namen dieses Controls' +' _ (Unterstrich) '+' Ereignisname' in Zukunft, wenn Sie den Namen des Controlfensters nicht ändern '(rename) 'bereits generiertes Ereignis –

+0

Sobald der Event-Handler (die Methode, nicht das Steuerelement) erstellt wurde, wird er nie automatisch durch einfaches Umbenennen des Steuerelements geändert:' label3' und 'label3_clicked' sind vollständig separate Symbole, und Sie können Verbinden Sie einfach denselben Ereignishandler mit mehreren Steuerelementen. Wenn Sie jedoch den Ereignishandler ('label3_clicked') in der Datei manuell umbenennen, bietet VS an, nach allen Vorkommen zu suchen und sie umzubenennen. Wenn Sie dies vermeiden möchten, geben Sie einfach das Steuerelement * an, bevor Sie das Ereignis erstellen. – Lou

Antwort

0

Sie haben die Click-Event-Handler-Methode erstellt, während das Label label3 hieß. Um dies zu beheben, markieren Sie den Methodennamen in Ihrem Code hinter und F2. Dadurch können Sie den Namen der Methode ändern (umgestalten), was wiederum den Formular-Designer ändert.

Benennen Sie in Zukunft einfach Ihre Objekte und erstellen Sie dann Ihre Event-Handler-Methoden und alles sollte gut sein.

1

ich nie das Verhalten erfahren, wo der Name des Ereignisses (das kann alles sein) automatisch aktualisiert wird, um den Namen der Steuerung übereinstimmen.

Dies ist, weil der Name des Ereignisses kann einfach alles sein (label3.Clicked += Whatever_Click_Whatever oder sogar ohne den Klick Teil). Es gibt keine Benennungsregeln, die der Compiler überprüfen kann. Es gibt nur die Standardeinstellung für automatisch generierte.

Was ist, wenn Sie einen benutzerdefinierten Namen haben, den Sie beim Ändern des Kontrollnamens nicht ändern möchten? Es gibt also kein automatisches Verhalten.

Also, was können Sie tun, ist zu Form1.Designer.cs gehen die Veranstaltung wie diese finden:

this.Load += new System.EventHandler(this.Form1_Load); 

Dann Right click => Rename oder Ctrl + R, Ctrl + R und den Namen ändern. Dies ändert sich auch in Ihrem Formularcode.

Verwandte Themen