Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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_Winforms - Fatal编程技术网

C# 包含PictureBox的面板未滚动

C# 包含PictureBox的面板未滚动,c#,.net,winforms,C#,.net,Winforms,我有一个Windows窗体应用程序,其中包含一个TabControl,我正在使用它为每个TabPage显示一个图像 在选项卡页面中,我放置了一个用于显示图像的CustomControl。CustomControl有一些用于设置图像布局的复选框、PictureBox和用于删除图像的按钮。这就是我的自定义控件的外观: 我希望PictureBox可滚动,因此为此,我向CustomControl添加了一个面板: // inside my main forms callback ImagePreview

我有一个Windows窗体应用程序,其中包含一个TabControl,我正在使用它为每个TabPage显示一个图像

在选项卡页面中,我放置了一个用于显示图像的CustomControl。CustomControl有一些用于设置图像布局的复选框、PictureBox和用于删除图像的按钮。这就是我的自定义控件的外观:

我希望PictureBox可滚动,因此为此,我向CustomControl添加了一个面板:

// inside my main forms callback
ImagePreviewCustomControl previewControl = new ImagePreviewCustomControl(bitMap);
previewControl.Dock = DockStyle.Fill;
TabPage tabPage = new TabPage(Path.GetFileNameWithoutExtension(imageFileName));                
tabPage.Controls.Add(previewControl);
imagesTabControl.TabPages.Add(tabPage);

// inside the custom control after the constructor
imagePreviewPictureBox.BackgroundImage = bitMap;
imagePreviewPictureBox.BackgroundImageLayout = imageLayout;

我将此面板的锚属性设置为左|右|上|下,并将AutoScroll属性设置为True

接下来,我将PictureBox放置在面板中,我将其锚点属性设置为左|右|上|下,并将SizeMode设置为自动调整大小:

当我启动应用程序并单击“添加图像”按钮时,我会通过编程方式添加一个包含CustomControl的新选项卡页面,然后将图像添加到CustomControl:

// inside my main forms callback
ImagePreviewCustomControl previewControl = new ImagePreviewCustomControl(bitMap);
previewControl.Dock = DockStyle.Fill;
TabPage tabPage = new TabPage(Path.GetFileNameWithoutExtension(imageFileName));                
tabPage.Controls.Add(previewControl);
imagesTabControl.TabPages.Add(tabPage);

// inside the custom control after the constructor
imagePreviewPictureBox.BackgroundImage = bitMap;
imagePreviewPictureBox.BackgroundImageLayout = imageLayout;
但是,如果添加的图像大于PictureBox,我看不到任何滚动条。(图像尺寸为1035 x 1024,因此它比PictureBox大得多。)

以下是一个屏幕截图:

我是否未正确设置面板或PictureBox的属性?如果是,我需要做什么

多谢各位

==更新==================================

我按照建议将PictureBox的Anchor属性更改为none。以下是我更新的布局:

然而,这仍然不起作用。我也看到了同样的问题。没有滚动条

这可能与我将CustomControl添加到TabPage时将其Dock设置为填充有关吗

ImagePreviewCustomControl previewControl=新的ImagePreviewCustomControl(位图);
previewControl.Dock=DockStyle.Fill;//
接下来,我将PictureBox放置在面板中,我将其锚属性设置为左|右|上|下

因此,
面板
不需要滚动,因为图片框永远不会超出查看端口。不要锚定图片框

接下来,我将PictureBox放置在面板中,我将其锚属性设置为左|右|上|下


因此,
面板
不需要滚动,因为图片框永远不会超出查看端口。不要锚定图片框。

我应该设置停靠点吗?@JanTacci,没有。设置
Dock
基本上也会做同样的事情。只需让图片框随着内容的增长和收缩即可。从技术上讲,您可以将
锚定设置为
Top | Left
,但我认为您可以将其单独设置,因为这应该是默认设置。底层面板呢?它的停靠/锚属性应该是什么?@JanTacci,
面板
很好。你让它和它的父母一起成长,因为它被锚定在各个方面。你说:“你让它和它的父母一起成长,因为它被锚定在各个方面”这对面板正确吗?我应该把码头设置为任何东西吗?@JanTacci,不。设置
Dock
基本上也会做同样的事情。只需让图片框随着内容的增长和收缩即可。从技术上讲,您可以将
锚定设置为
Top | Left
,但我认为您可以将其单独设置,因为这应该是默认设置。底层面板呢?它的停靠/锚属性应该是什么?@JanTacci,
面板
很好。您将它设置为与其父对象一起增长,因为它被锚定到所有侧面。您说:“您将它设置为与其父对象一起增长,因为它被锚定到所有侧面”对于面板是否正确?