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);
        }
}

私には 2 つの問題があります。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 に答える