C# 'da oldukça yeni olduğum için aşağıdaki kodla mücadele ediyorum. 'Knop' düğmesine tıkladığımda, 'klik' yönteminin çalıştırılması gerekir. Yöntem, form üzerinde 'DrawMandel' tarafından oluşturulan Bitmap 'b' çizmelidir. Ancak sürekli 'error.computer' system.eventhandler 'için aşırı yüklenme hatası aldım.Eşleşmeler için aşırı yükleme yok '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());
}
}
Olay işleyicisi delegelerin 'nesne gönderen sahip EventArgs bağımsız değişken listesi e'. Seninki değil. Ve kayıt için bir 'Click' olayının 'PaintEventArgs' olduğundan şüphe duyuyorum. – BoltClock
Klik için OnPaint() yöntemini yeniden adlandırdınız ve ardından bir düğme olay işleyicisine bağlamayı denediniz. + = Klik atamalarını kaldırın ve form tasarımcısından düğmeyi çift tıklayın ve yeni bir Button Handler yaratacaktır. – StuartLC
Bu, deneme ve hata programlamasıdır. Daha fazla hata olacak, sadece bir bitmap çizemez ve hayatta kalacağını umamazsınız. Yerel kütüphanenizi ziyaret edin ve bir Winforms programlama kitabına bakın. –