Autor Beitrag
Tonix
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Fr 02.01.09 23:43 
Hi
ich wollt eine Paint-Prozedur in eine KeyPress Prozedure einbinden und die darüber aufrufen lassen

das sie dann so aus:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  private void Form1_KeyPress(object sender, KeyPressEventArgs e)
 {
  if (e.KeyChar == 111)
            {
                Kreis_Paint();
            }
}
  private void Kreis_Paint(PaintEventArgs e)
        {
            Pen schwarz = new Pen(Color.Black);
            e.Graphics.DrawEllipse(schwarz, 1001001010);
        }

dabei kommt der Fehler "Keine Überladung für die Kreis_Paint-Methode nimmt 0 Argumente an."

Ich weiß das man Variablen und Bezeichner an die Prozedur übergeben muss wenn man sie aufrufen will, aber ich hab keine Idee welche ich hier angeben soll.
Ich hatte bis jetzt auch nie das Problem
Hat jemand eine Ahnung wie ich das Problem lösen kann?

danke im Vorraus
mfg Tonix

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 02.01.09 23:49 
Hallo und :welcome:!

Du musst einen Parameter vom Typ PaintEventArgs übergeben, so ist die Methode ja definiert. Stattdessen ist es aber sinnvoller einfach das Neuzeichnen des entsprechenden Controls auszulösen. Dann löst dieses ja das Paint-Ereignis selbst aus.

Dieses Neuzeichnen kannst du mit Invalidate erreichen.
msdn.microsoft.com/e...trol.invalidate.aspx

// EDIT:
Auf Nachfrage per PN, hier wäre ein konkretes Beispiel:
msdn.microsoft.com/e....painteventargs.aspx