将按钮事件返回到objectListView表单并正常退出

时间:2012-08-09 07:19:52

标签: c# button event-handling click objectlistview

还在学习c#。我正在创建一个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);
        }
}

我有两个问题:1)如何让ObjectListView告诉MainForm点击了一个按钮,请处理它。

2)我希望ObjectListView表单是用户看到的第一个表单,当ObjectListView表单关闭时,程序关闭。现在ObjectListView表单确实出现了,但是“后面”它是一个空白表单,当ObjectListView Form关闭时,控件似乎会传回这个空白表单而不是退出。

1 个答案:

答案 0 :(得分: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 ());