2012-08-09 53 views
0

仍在學習c#。我正在創建一個ObjectListView,其中包括捕獲按鈕點擊。將按鈕事件返回到objectListView窗體並正常退出

public partial class MainForm : Form 
    { 
    private FormSpecParser parser; 
    private static ObjectListviewForm form; 

    public MainForm() 
    { 
     InitializeComponent(); 
     createMainForm(); 
    } 

    private void createMainForm() 
    { 
     form = new ObjectListviewForm(); 
     form.Populate(parser.ParsedSpec); 
     form.Show(this); 
     } 
    } 


public partial class ObjectListviewForm : Form 
{ 
    ... 
     void b_Click(object sender, EventArgs e) 
     { 
      Button b = sender as Button; 
      if (b == null) return; 
      var button = GetFormSpecButton(b.Name); 

      MessageBox.Show(button.ClickMessageBoxStub); 
     } 
} 

我有2個問題:1)我如何獲得ObjectListView告訴MainForm的一個按鈕被點擊,請處理。

2)我想讓ObjectListView窗體成爲用戶看到的第一個窗體,當ObjectListView窗體關閉時,程序關閉。現在ObjectListView窗體確實出現了,但是「後面」是一個空白窗體,當ObjectListView窗體關閉時,控件似乎回傳到這個空白窗體而不是退出。

回答

0

1)您將MainForm作爲所有者傳遞給Show方法--form.Show(this)。這意味着,在ObjectListviewForm你可以從MainForm的調用方法是這樣的:

(this.Owner as MainForm).MethodInMainform(); 

2)在Program.cs的文件,你應該有這樣一行:

Application.Run(new MainForm()); 

將其更改爲:

Application.Run(new ObjectListviewForm());