Dato che sono abbastanza nuovo per C#, mi sforzo con il seguente pezzo di codice. Quando clicco sul pulsante 'knop', il metodo 'klik' deve essere eseguito. Il metodo deve disegnare la Bitmap 'b', generata da 'DrawMandel' sul modulo. Ma ottengo costantemente l'errore "nessun sovraccarico per le partite delegate" system.eventhandler ".nessun sovraccarico per le partite delegato 'system.eventhandler'
using System;
using System.Windows.Forms;
using System.Drawing;
class Mandelbrot : Form
{
public Bitmap b;
public Mandelbrot()
{
Button knop;
knop = new Button();
knop.Location = new Point(370, 15);
knop.Size = new Size(50, 30);
knop.Text = "OK";
this.Text = "Mandelbrot 1.0";
this.ClientSize = new Size(800, 800);
knop.Click += this.klik;
this.Controls.Add(knop);
}
public void klik(PaintEventArgs pea, EventArgs e) {
Bitmap c = this.DrawMandel();
Graphics gr = pea.Graphics;
gr.DrawImage(b, 150, 200);
}
public Bitmap DrawMandel()
{
//function that creates the bitmap
return b;
}
static void Main() {
Application.Run(new Mandelbrot());
}
}
delegati del gestore eventi hanno un mittente 'oggetto, EventArgs e' lista degli argomenti. Il tuo no. E per la cronaca dubito che un evento "Click" abbia un "PaintEventArgs". – BoltClock
Sembra che tu abbia rinominato un metodo OnPaint() su klik e poi hai provato a collegarlo a un gestore di eventi del pulsante. Rimuovere l'assegnazione + = klik e dal progettista di moduli, fare doppio clic sul pulsante e creerà un nuovo gestore di pulsanti. – StuartLC
Questa è la programmazione di prova ed errore. Ci saranno molti più errori, non puoi semplicemente disegnare una bitmap e sperare che sopravviva. Visita la tua biblioteca locale e controlla un libro di programmazione di Winforms. –