繁体   English   中英

包含PictureBox的面板不滚动

[英]Panel Containing PictureBox Not Scrolling

我有一个Windows Forms应用程序,其中包含一个TabControl,用于显示每个TabPage的图像。

在TabPage内,放置一个CustomControl来显示图像。 CustomControl具有一些用于设置图像布局的复选框,PictureBox和一个用于删除图像的按钮。 这是我的自定义控件的外观:

图像预览自定义控件

我希望PictureBox是可滚动的,因此,为了这样做,我向CustomControl添加了一个Panel:

图像预览自定义控件-面板

我将此面板的Anchor属性设置为Left | Right | Top | Bottom ,并将AutoScroll属性设置为True

接下来,将PictureBox放置在Panel内,将其Anchor属性设置为Left | Right | Top | Bottom,并将SizeMode设置为AutoSize

图像预览自定义控件-PictureBox

当我启动应用程序并单击“添加图像”按钮时,将以编程方式添加一个包含我的CustomControl的新TabPage,然后将该图像添加到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大得多。)

这是屏幕截图:

Tab控件包含图片的Tab控件

我是否错误地设置了Panel或PictureBox的属性? 如果是这样,我该怎么办?

谢谢。

== UPDATE ==================================

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

图像预览自定义控件-PictureBox

但是,这仍然行不通。 我看到了同样的问题。 没有滚动条

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

ImagePreviewCustomControl previewControl = new ImagePreviewCustomControl(bitMap);
previewControl.Dock = DockStyle.Fill; // << << <<
TabPage tabPage = new TabPage(Path.GetFileNameWithoutExtension(imageFileName));                
tabPage.Controls.Add(previewControl);
imagesTabControl.TabPages.Add(tabPage);

==========================================

接下来,将PictureBox放置在Panel内,将其Anchor属性设置为Left | Right | Top | Bottom ...

因此, Panel不需要滚动,因为图片框永远不会超出视口之外。 不要Anchor定图片框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM