2017-06-19 4 views
0

Ich habe gerade in der Öffentlichkeit meines Modifier-Menü und jetzt das ich erhalteSo stellen Sie die statische Methode in Forms bereit?

Wie „CS0120 Eine Objektreferenz für die nicht-statische Feld, Methode oder Eigenschaft‚HomeForm.checkBeamToolStripMenuItem erforderlich“ Ich stelle statische Methode in meiner Codierung zur Verfügung? Vielen Dank im Voraus

Mein-Code war:

private void AnalysisForm_FormClosing(object sender, EventArgs e) 
{ 
    HomeForm.checkBeamToolStripMenuItem.Enabled = true; 
} 
+0

sind Homeform und AnalysisForm in separaten Projekten definiert? Wenn ja, müssen Sie die Instanz des aufgerufenen Formulars (beispielsweise HomeForm) während der Initialisierung an das aufrufende Formular (AnalysisForm) übergeben. –

+0

Wenn HomeForm AnalysisForm geöffnet, dann einfach verkabeln und das FormClosed() - Ereignis von AnalysisForm, ** in HomeForm, wenn Sie AnalysisForm ** erstellt, und Sie müssen keine Referenzen überhaupt übergeben. –

Antwort

0

Sie einen klassischen Fehler zu machen, die eine Tonne von ähnlichen Fragen hier auf Stackoverflow zu verursachen scheint, das ist wie eine Form von einem anderen zu verweisen. (Suchen Sie hier auf Stackoverflow und Sie werden eine Menge Variationen finden, wie man das macht)

Aber die Grundidee, das zu tun ist, Sie brauchen ein Objekt Verweis auf das andere Formular. Was Sie versuchen, ist der Zugriff auf die Klasse "HomeForm", die kein Objekt ist.

Damit Ihre Formulare erstellt werden, müssen Sie die Objektreferenz an das Analyseformular übergeben, damit Sie die Aufgabe ausführen können.

var homeform = new HomeForm(); 
var analysis = new AnalysisForm(homeform); 

aber ich tun würde es ganz anders für mich, starten Sie eine Methode auf homeform mit machen anstatt auf es Kontrollen.

Verwandte Themen