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