2017-01-07 57 views
0

假设我有一个图片箱(picturebox1),并且我想在该图片箱中显示3张随机大小的图片......这怎么可能?我还没有尝试过任何东西,因为我不知道从哪里开始。在1个图片箱中显示3张图片

+0

如果不是不清楚,你的问题太广泛了。你的意思是你想加载三个不同的图像,并以某种方式将它们布置在一个单一的图像盒中?如果是这样,从[DrawImage](https://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawimage(v = vs.110).aspx)开始。如果您想重新加载3个不同的图像,请查看[Image.FromFile](https://msdn.microsoft.com/en-us/library/system.drawing.image.fromfile(v = vs.110).aspx)。 – rene

+0

是啊...我想加载3个不同的图像,并以某种方式将它们布置在一个picturebox中 –

+0

@rene将3个图像合并为1并将其放置到1个picturebox中...我认为现在更清晰 –

回答

0

无法在每个图片框中显示多个图片。你可以做的是创建一个Canvas组件,并在画布中放置三个带有一个图像的图像框。

+0

然后如何创建此画布组件,也..我需要显示一些K pictureboxes –

+1

我不记得Winforms有一个Canvas组件。那是什么? – rene

+0

哦,我很抱歉。画布仅在WPF上可用。但是任何容器组件都可以工作。但是在它里面,您可以根据需要显示尽可能多的图片框。 – Pelicer

1

查看下面的代码。我用一个矩形来演示而不是图像。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     const int ROWS = 3; 
     const int COLUMNS = 4; 
     const int WIDTH = 10; 
     const int HEIGHT = 20; 
     const int SPACE = 10; 
     public Form1() 
     { 
      InitializeComponent(); 
      Panel panel = new Panel(); 
      panel.Width = COLUMNS * (WIDTH + SPACE); 
      panel.Height = ROWS * (HEIGHT + SPACE); 
      this.Controls.Add(panel); 
      for (int rows = 0; rows < ROWS; rows++) 
      { 
       for (int cols = 0; cols < COLUMNS; cols++) 
       { 
        PictureBox newPictureBox = new PictureBox(); 
        newPictureBox.Width = WIDTH; 
        newPictureBox.Height = HEIGHT; 
        newPictureBox.Top = rows * (HEIGHT + SPACE); 
        newPictureBox.Left = cols * (WIDTH + SPACE); 
        panel.Controls.Add(newPictureBox); 
        newPictureBox.Paint +=new PaintEventHandler(pictureBox_Paint); 

       } 
      } 
     } 
     private void pictureBox_Paint(object sender, PaintEventArgs e) { 
      Rectangle ee = new Rectangle(0, 0, WIDTH, HEIGHT);   
      using (Pen pen = new Pen(Color.Red, 2)) { 
       e.Graphics.DrawRectangle(pen, ee); 
      } 
     } 
    } 
} 
相关问题