[英]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 :
当我启动应用程序并单击“添加图像”按钮时,将以编程方式添加一个包含我的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大得多。)
这是屏幕截图:
我是否错误地设置了Panel或PictureBox的属性? 如果是这样,我该怎么办?
谢谢。
== UPDATE ==================================
我按照建议将PictureBox的Anchor属性更改为none。 这是我更新的布局:
但是,这仍然行不通。 我看到了同样的问题。 没有滚动条
这与将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.