2012-10-29 50 views
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, 然後在關閉事件我希望它回到中心屏幕但表格仍然在0,0位置。爲什麼當我關閉控件時,Form1不會回到CenterScreen位置?

我該如何解決?

回答

1

首先通過設置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:獲取或設置表示屏幕座標中窗體左上角的點。

+0

Ria你的代碼工作只是我不得不刪除線:e.Cancel = true;如果即時通訊使用它會阻止我關閉ZedGraph控件。我想關閉它,但也將Form1移動到屏幕的中心。 HistogramGraphs1是一個包含ZedGraph控件的新窗體。 – user1741587

0

如果你設置this.StartPosition = FormStartPosition.CenterScreen;那麼你需要重新打開表單。其他方面它不會影響。

相關問題