Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调整窗体大小时调整PictureBox的大小_C#_.net_Resize_Picturebox_Image - Fatal编程技术网

C# 调整窗体大小时调整PictureBox的大小

C# 调整窗体大小时调整PictureBox的大小,c#,.net,resize,picturebox,image,C#,.net,Resize,Picturebox,Image,我正在将多个图像加载到面板(在面板中有多个图片框),并希望在调整windows窗体的大小时调整图像的大小 这是我的密码: foreach (string filename in ofdmulti.FileNames){ picbox[i] = new PictureBox(); picbox[i].Size = new System.Drawing.Size(256, 256); picbox[i].SizeMode = PictureBoxSizeMode.Zoom;

我正在将多个图像加载到
面板
(在
面板
中有多个
图片框
),并希望在调整windows窗体的大小时调整图像的大小

这是我的密码:

foreach (string filename in ofdmulti.FileNames){
    picbox[i] = new PictureBox();
    picbox[i].Size = new System.Drawing.Size(256, 256);
    picbox[i].SizeMode = PictureBoxSizeMode.Zoom;
    picbox[i].Dock = DockStyle.Fill;
    i++;
}

但是我看不到多个图像,只有一个图像,并且完全拉伸,可能有什么问题?

您的代码有多个问题。首先,这一行代码将确保您只看到一个
PictureBox
…很可能是您添加的最后一个:

picbox[i].Dock = DockStyle.Fill;
其次,我看不到您正在设置
PictureBox
位置
,因此它们都将指向
点(0,0)
,这意味着即使不考虑
停靠
设置,它们也会在某种程度上重叠

如果您试图获得一个好的安排,例如平铺,那么您可以使用
表格布局面板
。这将允许您使用
描述网格模式,然后将
图片框
控件添加到网格中


当然,还有其他选项,具体取决于您的目标。

将picturebox.Image替换为已调整大小的图像,然后使用sizemode.AutoSize

@Skippy看起来像C#to meDockStyle。Fill将控件放大以填充其父控件的全部内容。感谢您的回复。首先,这是C#。NET。我使用了TableLayoutPanel来包含PictureBox,效果很好,现在我使用TableLayoutPanel的“Add”方法将它们放置在行和列中。现在,如果我将tablelayoutpanel的属性设置为AutoScroll=True,那么它不会在添加滚动条(垂直和水平)时自动调整图像大小。在TableLayoutPanel中没有滚动条的情况下滚动图像的最佳方式是什么?