【发布时间】:2012-02-23 04:05:03
【问题描述】:
技术:.NET 4、C#、WinForms、Visual Studio 2010
在调整自定义 UserControl 的大小时遇到了问题。客户UserControl 只包含一个PictureBox,其属性设置为在必要时显示滚动条。
UserControl 具有以下属性集:
- AutoScaleMode:字体
- 自动滚动:真
- 双缓冲:真
- 最小尺寸:100、100
- 尺寸:250、250
PictureBox 具有以下属性集:
- 锚点:左上角
- 位置:0,0
- 尺寸:250、250
- SideMode:AutoSize
在自定义控件的设计器视图中,PictureBox 填充了所需的整个like。但是,在主应用程序的设计器视图中,自定义的 UserControl 最初是 250 x 250,就像它的设计器显示的那样,但是当我调整它的大小以适应主应用程序时,只有 UserControl 面板被调整大小而留下 @987654329 @ 到原来的 250 x 250。我公开的属性之一是 PictureBox 内的鼠标光标 X、Y 位置,当没有加载图像时,该属性在 250 x 250 区域之外不返回任何内容。
我试过了:
- 将 Anchor 属性设置为 Top、Left、Right、Bottom,但这会导致
UserControl不显示滚动条。 - 将
PictureBox的Dock 属性设置为填充,但这也会导致UserControl不显示滚动条。
我怎样才能使PictureBox 始终是UserControl 的全尺寸,即使在设计器中进行了调整?
【问题讨论】:
-
如果 PictureBox 填充了 UserControl,为什么需要显示 scoll 条?
-
是的,我知道这不是很清楚。在主应用程序中,PictureBox 通常比 UserControl 大,因此会有滚动条。我的问题是,当主应用程序启动时,PictureBox 是它在设计器中创建的大小,无论 UserControl 目前是什么大小。它不再按需要填充 UserControl。
-
您已将图片框的
SizeMode属性设置为AutoSize,因此当您在图片框的Image属性中设置图像时,图片框应自行调整大小以匹配图像的大小。您是否设置了Image属性? -
当我将
PictureBox设置为大于UserControl的图像时,它会按预期工作。我正在尝试解决第一次加载UserControl并且大小未知的情况,但PictureBox仍然是我在设计器中设置的大小。
标签: c# .net winforms user-controls picturebox