0

1 つのフォームとその中にボタンがあります。ウィンドウの高さを切り替えるにはどうすればよいですか。ボタンを初めてクリックすると、ウィンドウの高さが 166 増加し、ボタンを 2 回目にクリックすると、高さは 166 減少します。

ばかげた質問で申し訳ありませんが、私は本当に混乱しました;ありがとう

 private void button2_Click(object sender, EventArgs e)
    {

        int  FormHeight = this.Height;
        int  FormHeightBefore = FormHeight;

        if (this.Height == FormHeightBefore)
        {//toggle off 
            this.Height = this.Height + 166;
        }
        else { 
        //toggle on
            this.Height = this.Height - 166;
        }

    }

上記のコードを試してみましたが、機能しません。ボタンを押すたびに、フォームの高さが増加します

4

4 に答える 4

1

このようなことができます。

bool isExpanded;

private void button2_click(object sender, EventArgs e) 
{
    Height += (isExpanded ? -166 : 166);

    isExpanded = !isExpanded;
}
于 2013-01-20T21:45:41.493 に答える
1
partial class Form1 {
    public int FormHeight;

    private void button2_Click(object sender, EventArgs e) {
        this.Height += (FormHeight = (FormHeight > 0 ? -1 : 1) * 166);
    }
}
于 2013-01-20T21:49:14.370 に答える
1

最初の 2 行に注意してください。

int  FormHeight = this.Height;
int  FormHeightBefore = FormHeight;

実際には常に両方の変数を現在の高さに設定しています...

したがって、同じ if ステートメントが常に呼び出されます...

これは正しく動作します:

const int heightOffset = 166;
int  FormHeightBefore = this.Height
private void button2_Click(object sender, EventArgs e)
{
    if (this.Height == FormHeightBefore)
    {//toggle off 
        this.Height += heightOffset ;
    }
    else
    { 
       //toggle on
        this.Height = FormHeightBefore;
    }

}
于 2013-01-20T21:40:47.703 に答える
0

(ボタンをクリックして) メソッドに入るたびに、現在のフォームの高さをチェックし、それを「最初の高さ」と見なすため、コードは失敗します。

次のようにします。

private readonly int initialHeight;

public Form1()
{
    InitializeComponent();
    initialHeight = this.Height;
}

private void button2_Click(object sender, EventArgs e)
{

    if (this.Height == initialHeight)
    {   // increase height
        this.Height = initialHeight + 166;
    }
    else { 
        // decrease height
        this.Height = initialHeight;
    }
}

最初のinitialHeight宣言は、ボタンのクリック イベントの範囲外であることに注意してください。

于 2013-01-20T21:41:02.297 に答える