Hallo Leute Ich versuche, eine "Minipaint" -Anwendung zu machen, die drei Tasten (Rechteck, Kreis und Linie) hat. Ich habe Probleme damit, meine buttons
Arbeit zu machen. Zum Beispiel habe ich dieses Rechteck-Klasse, die Farbe erbt, Dicke, Startpunkte x, y aus Form:Schaltfläche klicken Windows Form C#
class rectangle : shape
{
public int length { get; set; }
public int width { get; set; }
public override void Draw(Graphics g)
{
g.DrawRectangle(new Pen(color), new Rectangle(startx, starty, width, length));
}
}
Jetzt möchte ich meine rectangle_btn_Click
ein Rechteck in meinem panel
drucken, wenn ich darauf klicken. hier ist mein panel
Code:
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = panel1.CreateGraphics();
}
und das ist mein button
:
private void rectangle_btn_Click(object sender, EventArgs e)
{
rectangle r = new rectangle();
int retval = r.Draw(g);
}
Aber es einen Fehler hat und es nicht g
erkennen. Wie soll ich das machen?
Nein entsorgen = schlecht. – Sinatr
Diese Lösung wird Syntaxfehler beheben und auch Rechteck zeichnen, aber wenn 'Panel1' neu gezeichnet wird, wird das Rechteck verschwinden. Versuchen Sie, die Anwendung zu minimieren und erneut zu maximieren (nachdem das Rechteck gezeichnet wurde), um zu sehen, wovon ich rede. –
@ krw12572 Ich aktualisiere meine Antwort unter Berücksichtigung Ihrer Bedenken. Ich habe es auch getestet und es sollte auch nach Minimierung und Maximierung wieder korrekt funktionieren. –