Please see my comment to the question. Any method would do the trick, and I cannot even imagine how it would be possible to fail it. So, let me describe just on of the simplest possible approaches. Use the class
System.Drawing.PictureBox
(which I almost always discourage to use, because our inquirers tend to abuse it to solve more complicated problems then this simple control is designed for, but you case is the opposite, too simple):
https://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox%28v=vs.110%29.aspx[
^].
Create 4 instances, put an appropriate image in each (
https://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.image(v=vs.110).aspx[
^]), adjust
Size
and
Location
of each control to implement your layout.
[EDIT]
Sherif Kamel
Well I think you got me wrong on that. What I meant is that I want to PRINT it on a paper with the preview included in the question. So the problem rely in the conversion process from the application to the printer.
Well, sorry for not getting it.
When you use
System.Drawing.Printing.PrintDocument
, you will need to use its
PrintPage
event. In this event, you have to render graphics directly:
https://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument%28v=vs.110%29.aspx[
^].
You layout will boil down to the calls to
System.Drawing.Graphics.DrawImage
with appropriate parameters (location, size, and so on).
Moreover, I would advise you to abstract out the rendering method, to have the same method for screen, print page, print preview, any other media. Create a method like
Render(System.Drawing.Graphics)
and call it from your rendering handles for different media, reuse it. And no, in this case, don't use
PictureBox
.
See also:
https://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawimage%28v=vs.110%29.aspx[
^].
—SA