2014-02-06 3 views
0

Я пытаюсь сделать растровое изображение в моей форме, но это не сработает.bitmap не появится в форме

мой код:

private void button2_Click(object sender, EventArgs e) 
{ 
    Graphics g = this.CreateGraphics(); 
    Pen pen = new Pen(Color.Black); 

    Bitmap bitmap = new Bitmap(1000, 1000); 
    Graphics gfx = Graphics.FromImage(bitmap); 
    gfx.Clear(Color.Red); 

    for (int i = 0; i < 5; i++) 
    { 
     gfx.DrawRectangle(pen, i + 50, 50, 50, 50); 
    } 
} 
+2

Почему вы не помещаете PictureBox в свою форму и не назначаете новый битмап? Опираясь на форму, она приведет к возникновению всех проблем. – nvoigt

+1

Ничто в этом коде не пытается нарисовать растровое изображение. Вы рисуете прямоугольники на растровом изображении в памяти, но вы не рисуете растровое изображение. – DonBoitnott

ответ

0

Все код делает приближается к битовой карте, в памяти. У вас нет кода, который бы отображал это растровое изображение где угодно.

Вы можете изменить код, чтобы нарисовать растровое изображение на форме, но, как было предложено в комментариях к nvoigt, лучшим решением было бы использовать элемент управления PictureBox. При создании растрового изображения, вы можете назначить этот битовый образ Image собственности бокса картинки:

Bitmap bitmap = new Bitmap(1000, 1000); 
// render bitmap 

pictureBox1.Image = bitmap; 

Если вы абсолютно необходимо сделать на самой форме, вы можете переопределить OnPaint метод форме, и использовать DrawImage() метод графического объекта в для рендеринга вашего растрового изображения.

+0

Спасибо, я уже разработал его! – Robin

Смежные вопросы