Autor Beitrag
vreden123
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 2



BeitragVerfasst: Di 22.02.11 15:40 
Hallo ich habe folgende Funktion die static sein muss weil eine andere Klasse darauf zugreifen muss.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
static public void Autostart_setzen_schnittstelle()
        {
            jaToolStripMenuItem.Checked = true;
            neinToolStripMenuItem.Checked = false;
        }


Jetzt meckert er dass das für
ausblenden C#-Quelltext
1:
2:
jaToolStripMenuItem.Checked = true;
neinToolStripMenuItem.Checked = false;


das nicht statische Feld ein Objektverweis erforderlich ist.
Wie erstelle ich ein Objektverweis?

Mit

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
 static public void Autostart_setzen_schnittstelle()
        {
            contextMenutray.jaToolStripMenuItem.Checked = true;
            contextMenutray.neinToolStripMenuItem.Checked = false;
        }


klappt es nicht.

Wie erstelle ich einen Objektverweis?

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Di 22.02.2011 um 14:42
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Di 22.02.11 15:46 
Um von einer statischen Funktion auf dein ToolStripMenuItem zuzugreifen muss dieses auch statisch sein. Sonst kann er ja nicht wissen welches gemeint ist da eine statische Funktion nicht an eine Instanz einer Klasse und die dazugehörigen Variablen gebunden ist.

Aber reicht nicht auch ein "public" (statt static) um extern auf eine Funktion deiner Instanz zuzugreifen?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 22.02.11 15:50 
Zitat:
Hallo ich habe folgende Funktion die static sein muss weil eine andere Klasse darauf zugreifen muss.

Die Annahme solltest du nochmal überdenken. Wenn Klassen untereinander nur statisch zugreifen könnten wäre das gesamte OO Konzept ziemlich überflüssig.
Natürlich können und müssen Instanzen von Klassen miteinander kommunizieren können. Wie das geht wirst du reichlich Beispiele im Netz finden.

Da es dir scheinbar um die Kommunikation zwischen Formularen geht hilft dir vielleicht schon das hier.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4796
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 22.02.11 16:51 
Hallo vreden123,

ich habe dir doch schon bei www.c-sharp-forum.de....php?p=632211#632211 Hilfe dazu gegeben. Du hast aber noch nicht einmal darauf geantwortet.

List dir dazu wirklich intensiv mal meinen bzw. den von Ralf Jansen geposteten Link dazu durch.