0

私はそれを設定しようとしましたが、このとき、私のフォームはまだ高さが大きくなっています。これを行う方法はありますか?

4

5 に答える 5

2

MSDN からのメモ:-

Sizable スタイルでは、ControlBox を false に設定し、テキストに長さ 0 の文字列を割り当てた場合でも、ウィンドウのサイズを特定の最小値未満に変更することはできません。SizableToolWindow style代わりにを使用して、この問題を回避することを検討してください。

于 2012-08-31T03:45:03.590 に答える
1

ControlBox=False にします。そしてあなたはあなたが望むものを手に入れるでしょう。30x30以上のサイズのControlBoxなので、無くても全てのサイズが出来ます。

于 2012-08-31T04:41:29.277 に答える
1

ここに私のために働く解決策があります。

Form から派生したクラスで、2 つのメソッドをオーバーライドして、適用されるサイズ補正をバイパスし、制限を下回るサイズを設定することを禁止します。

    // 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 );
    }

魔法のように機能しました...私はそれを使用して、画面上のどこにでもポップする何らかの種類の通知ウィンドウを作成しました。これには、あらゆる種類のコントロールが含まれ、あらゆるサイズがあり、制限はありません。

于 2013-01-16T14:30:36.713 に答える
1

プロパティに設定trueしている可能性がありForm.AutoSizeます。をオフにしAutoSize=falseます。

于 2012-08-31T03:34:15.550 に答える
1

問題は境界線スタイルであると推測できます。すべてのフォームには境界線があり、境界線がないことを気にしない場合は変更できません。境界線スタイルをなしに設定すると、フォームの高さを0pxにすることもできます

于 2012-08-31T03:35:42.637 に答える