0
private void histogramGraphsToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Location = new Point(0, 0);
            HistogramGraphs1 = new Lightnings_Extractor.Histogram_Graphs();
            HistogramGraphs1.Show();
            HistogramGraphs1.FormClosing += new FormClosingEventHandler(HistogramGraphs1_FormClosing);
            histogramGraphsToolStripMenuItem.Enabled = false;

        }



private void HistogramGraphs1_FormClosing(object sender , FormClosingEventArgs e)
    {
        this.StartPosition = FormStartPosition.CenterScreen;
        histogramGraphsToolStripMenuItem.Enabled = true;
    }

最初にフォームを0,0の位置に置き、次にClosingイベントで中央の画面に戻したいのですが、フォームはまだ0,0の位置にあります。

どうすれば修正できますか?

4

2 に答える 2

1

まず、setでこのフォームを閉じないようにしますe.Cancel = true。次に、ウィンドウを画面の中央に移動します。

private void HistogramGraphs1_FormClosing(object sender , FormClosingEventArgs e)
{
    histogramGraphsToolStripMenuItem.Enabled = true;
    e.Cancel = true;
    int x = Screen.PrimaryScreen.WorkingArea.Width / 2 - this.Width / 2;
    int y = Screen.PrimaryScreen.WorkingArea.Height / 2 - this.Height / 2;
    this.Location = new Point(x, y);
}

そしてこのMSDNの記事は役に立つかもしれません:

説明:

CancelEventArgs.Cancel:イベントをキャンセルするかどうかを示す値を取得または設定します。

Form.Location Property:画面座標でフォームの左上隅を表すポイントを取得または設定します。

于 2012-10-29T09:20:16.957 に答える
0

this.StartPosition=FormStartPosition.CenterScreenを設定する場合; 次に、フォームを再度開く必要があります。それ以外の場合は効果がありません。

于 2012-10-29T09:11:41.547 に答える