C# 将按钮事件返回到objectListView表单并正常退出
还在学c。我正在创建一个ObjectListView,其中包括捕获按钮点击C# 将按钮事件返回到objectListView表单并正常退出,c#,button,event-handling,click,objectlistview,C#,Button,Event Handling,Click,Objectlistview,还在学c。我正在创建一个ObjectListView,其中包括捕获按钮点击 public partial class MainForm : Form { private FormSpecParser parser; private static ObjectListviewForm form; public MainForm() { InitializeComponent(); createMainForm();
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表单关闭时,控件似乎会传递回这个空白表单,而不是退出。1)您将MainForm作为所有者传递给Show方法-Form.Show(此)。这意味着在ObjectListviewForm中,可以从MainForm调用方法,如下所示:
(this.Owner as MainForm).MethodInMainform();
Application.Run(new MainForm());
2) 在Program.cs文件中,您应该有如下行:
(this.Owner as MainForm).MethodInMainform();
Application.Run(new MainForm());
将其更改为:
Application.Run(new ObjectListviewForm ());