【问题标题】:Why I can't set my form height to 30px?为什么我不能将我的表单高度设置为 30px?
【发布时间】:2012-08-25 20:52:37
【问题描述】:

我试过设置,但是当这个设置时,我的表单仍然有更高的高度。有什么办法吗?

【问题讨论】:

  • Windows 窗体?请显示一些代码。

标签: c# forms height


【解决方案1】:

可能您已将true 设置为Form.AutoSize 属性。关闭AutoSize=false

【讨论】:

  • 我设置为 false 但表格高度仍然很大
  • 我们不知道Form的哪些属性被设置了。尝试创建一个新的Form 看看会发生什么。
  • 我认识到这是因为 FormBorderStyle=none。如果我改变这个,我的表单有 30px 的高度。但是 FormBorderStyle=none 对我来说很重要。
【解决方案2】:

我只能假设问题是边框样式 所有表格都有一个你不能改变的边框 如果您不介意没有边框,只需将边框样式设置为无,然后表单高度甚至可以为 0px

【讨论】:

  • 我将 FormBorderStyle 设置为无,但我的表单高度仍然很大
【解决方案3】:

A Note from MSDN:-

使用 Sizable 样式,无法调整窗口以下的大小 某个最小值,即使您已将 ControlBox 设置为 false 并且 为 Text 分配了一个长度为零的字符串。考虑通过以下方式解决此问题 改用SizableToolWindow style

【讨论】:

  • 我正在使用 FormBorderStyle=none。这对我来说非常重要。有没有其他方法可以做到这一点?
  • 不确定,但 msdn 写它是不可能的。可能还有其他方法可以做到这一点,也许使用像 CreateWindowEx 这样的原生 API。
【解决方案4】:

使控制框=假;你会得到你想要的。因为它是ControlBox,尺寸超过30x30,没有它你可以做所有尺寸。

【讨论】:

  • 是的,现在表单有 30px 的高度。感谢您的帮助,现在我完成了我的工作!
【解决方案5】:

这是一个适合我的解决方案。

在您从 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 );
    }

工作起来就像一个魅力...我用它来创建某种在屏幕上任何地方弹出的通知窗口,它可以包含任何类型的控件并具有任何大小,没有限制。

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多