0

还在学习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 表单关闭时,控制似乎会传回这个空白表单而不是退出。

4

1 回答 1

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 ());
于 2012-08-09T07:59:19.993 回答