【发布时间】:2012-08-25 20:52:37
【问题描述】:
我试过设置,但是当这个设置时,我的表单仍然有更高的高度。有什么办法吗?
【问题讨论】:
-
Windows 窗体?请显示一些代码。
我试过设置,但是当这个设置时,我的表单仍然有更高的高度。有什么办法吗?
【问题讨论】:
可能您已将true 设置为Form.AutoSize 属性。关闭AutoSize=false。
【讨论】:
Form的哪些属性被设置了。尝试创建一个新的Form 看看会发生什么。
我只能假设问题是边框样式 所有表格都有一个你不能改变的边框 如果您不介意没有边框,只需将边框样式设置为无,然后表单高度甚至可以为 0px
【讨论】:
使用 Sizable 样式,无法调整窗口以下的大小 某个最小值,即使您已将 ControlBox 设置为 false 并且 为 Text 分配了一个长度为零的字符串。考虑通过以下方式解决此问题 改用
SizableToolWindow style。
【讨论】:
使控制框=假;你会得到你想要的。因为它是ControlBox,尺寸超过30x30,没有它你可以做所有尺寸。
【讨论】:
这是一个适合我的解决方案。
在您从 Form 派生的类中,重写两个方法以绕过应用的尺寸校正,并禁止您将尺寸设置为低于限制。
// the *real* width and height of your form, Width and Height are now lying...
internal int CoreWidth { get; private set; }
internal int CoreHeight { get; private set; }
// just for fun :
public new int Width { get { return CoreWidth; } }
public new int Height { get { return CoreHeight; } }
protected override void SetClientSizeCore ( int x, int y )
{
// get wished width and height earlier enough in the chain of calls
CoreWidth = x;
CoreHeight = y;
base.SetClientSizeCore ( x, y );
}
protected override void SetBoundsCore ( int x, int y, int width, int height, BoundsSpecified specified )
{
// don't trust width and height that are provided, use the ones you kept
base.SetBoundsCore ( x, y, CoreWidth, CoreHeight, specified );
}
工作起来就像一个魅力...我用它来创建某种在屏幕上任何地方弹出的通知窗口,它可以包含任何类型的控件并具有任何大小,没有限制。
【讨论】: