Problem beim Klassen erzeugen Hilfe!!

Topia

Mitglied
hallo, ich kriege nicht hin , hab da snoch nie mit Methoden..etc geamcht.
Ich hoffe ihr könnt mir helfen

Code:
 class liniezeichnen 
        {
            public liniezeichnen(int a, int b, int c, int d,int s,int w, int r, int u, System.Windows.Forms.PaintEventArgs e)
            {
                //Graphics Object ermitteln
                Graphics grfx = e.Graphics;
                grfx.Clear(System.Drawing.SystemColors.Control);

                //Linie mit einem Pixel Breite zeichnen
                Pen pen = new Pen(Color.Red);
                grfx.DrawLine(pen, a, b, c, d);

                //Rechteck mit einem Pixel Höhe und Breite zeichnen
                pen = new Pen(Color.Blue);
                grfx.DrawRectangle(pen, s, w, r, u);

                //Rechteck mit fünf Pixel Höhe und Breite zeichnen
                SolidBrush brush = new SolidBrush(Color.Magenta);
                grfx.FillRectangle(brush, a, b, c, d);

               
            
            
            
            }

            class Liniezeichnen
            {
                public static void Main()
                {

                    liniezeichnen meinelinie = new liniezeichnen(55, 88, 62, 578, 74, 253, 14, 25);
                    
                    



                }
            }
        }

Unten bei den der erstellung von new linienzeichnen wird die fehlermedlung angezeigt "Windowsapplication35.Form1.linienzeichnen" enthält keinen Konstruktor der 8 Argumente aktzeptiert.
 
Zuletzt bearbeitet:
Die Fehlermeldung sagt ja, was nicht OK ist.

Dein Konstruktor hat 9 Parameter:

Code:
 class liniezeichnen 
        {
            public liniezeichnen(int a, int b, int c, int d,int s,int w, int r, int u, System.Windows.Forms.PaintEventArgs e)
            {
                //Graphics Object ermitteln
                Graphics grfx = e.Graphics;
                grfx.Clear(System.Drawing.SystemColors.Control);

                //Linie mit einem Pixel Breite zeichnen
                Pen pen = new Pen(Color.Red);
                grfx.DrawLine(pen, a, b, c, d);

                //Rechteck mit einem Pixel Höhe und Breite zeichnen
                pen = new Pen(Color.Blue);
                grfx.DrawRectangle(pen, s, w, r, u);

                //Rechteck mit fünf Pixel Höhe und Breite zeichnen
                SolidBrush brush = new SolidBrush(Color.Magenta);
                grfx.FillRectangle(brush, a, b, c, d);      
            }
        }

Dann willst du die Klasse mit 8 Parametern instanzieren:

Code:
                public static void Main()
                {

                    liniezeichnen meinelinie = new liniezeichnen(55, 88, 62, 578, 74, 253, 14, 25);

                }

Da fehlt also der Parameter System.Windows.Forms.PaintEventArgs e.
 
thx musste den Parameter PaintEventArgs e weglassen der wird wahrscheinlich später initalisiert. DOch jetzt kommt die Fehlermeldung :

Fehler 2 Für das Programm "WindowsApplication35.exe" sind mehrere Einstiegspunkte definiert: "WindowsApplication35.Form1.Main()". Kompilieren Sie mit /main, um den Typ anzugeben, der den Einstiegspunkt enthält. C:\Users\daggi\Desktop\DEUTSCHE AMPEL\Form1.cs 84 15 WindowsApplication35

Wie kann ich dne Fehler beheben?
 
Jede Applikation darf nur eine Mai()-Methode haben, diese ist der Einstiegspunkt ins Programm.
Ich sehe gerade oben, du hast da ein ziemliches Chaos gemacht.

Du hast in der Klasse linienzeichnen wieder ne Klasse Linienzeichnen und auch noch die Main()-Funktion drin, die laut deiner Fehlermeldung auch noch wo anders zu sein scheint.

Das musst du auseinanderklamüsern.

Du hast irgendwo die Klasse, am besten in einer eigenen Datei. Eine Klasse hat Konstruktor, Klassenvariablen und Methoden. In deinem Fall hast du hier die Klasse mit Konstruktor ohne Methoden und Variablen.
Code:
class liniezeichnen 
{
            public liniezeichnen(int a, int b, int c, int d,int s,int w, int r, int u, System.Windows.Forms.PaintEventArgs e)
            {
                //Graphics Object ermitteln
                Graphics grfx = e.Graphics;
                grfx.Clear(System.Drawing.SystemColors.Control);

                //Linie mit einem Pixel Breite zeichnen
                Pen pen = new Pen(Color.Red);
                grfx.DrawLine(pen, a, b, c, d);

                //Rechteck mit einem Pixel Höhe und Breite zeichnen
                pen = new Pen(Color.Blue);
                grfx.DrawRectangle(pen, s, w, r, u);

                //Rechteck mit fünf Pixel Höhe und Breite zeichnen
                SolidBrush brush = new SolidBrush(Color.Magenta);
                grfx.FillRectangle(brush, a, b, c, d);      
            }
}

Dann hats du die Main-Funktion, die es eben nur einmal geben darf und zwar nicht innerhalb einer Klasse wie es bei dir jetzt ist. Sondern schön separat.

Das Main, in dem eine Instanz der Klasse linienzeichnen erstellt wird, musst du aus der Klasse rausnehmen.
Die Instanzierung der Klasse linienzeichnen kannst du in die schon vorhandene Main-Funktion reinnehmen.
Code:
public static void Main()
{
         liniezeichnen meinelinie = new liniezeichnen(55, 88, 62, 578, 74, 253, 14, 25);
}

Grüsse
Tecla
 
Zurück