【发布时间】:2021-09-01 06:48:24
【问题描述】:
通过我的主表单上的一个按钮,我打开了一个搜索表单。当我点击搜索表单上的按钮时,它会打开一个显示搜索结果的新表单。
当我点击“搜索结果”表单上的按钮时,我希望它在我的主表单中触发一个事件。
我试过下面的代码,但是没有用,基本上什么都没做。
主窗体:
public void mainBtnMenuSearch_Click(object sender, EventArgs e)
{
frmSearch frmSearch = new frmSearch(); // My search form
frmSearchList frmSearchList = new frmSearchList(); // My search results form
frmSearchList.FormClosed += frmSearchTriggerEvent; // Search results form closed
frmSearch.Show();
}
public void frmSearchTriggerEvent(object sender, FormClosedEventArgs e)
{
if (frmSearchList.isOpenedProject == true)
{
loadForm(); // Load another form into the panel in my Main form
}
else if (frmSearchList.isOpenedProject == false)
{
// ¯\_(ツ)_/¯
}
}
搜索表格:
public void searchByDate_Click(object sender, EventArgs e)
{
// some code for passing search results
frmSearchList frmSearchList = new frmSearchList(); // My search results form
frmSearchList.Show();
this.Close();
}
搜索结果表单:
public void openProjectByResult_Click(object sender, EventArgs e)
{
// some code for passing selected result's details
this.Close();
}
编辑
我已经检查过断点。 frmSearchTriggerEvent 没有被触发,frmSearchList.isOpenedProject 在触发之前变为真。
【问题讨论】:
-
所以你是说
frmSearchTriggerEvent永远不会被触发?你有没有放一个断点来确定? -
也许,
frmSearchList.isOpenedProject是假的,这将导致无法观察到的行为。您是否使用断点验证frmSearchTriggerEvent未被调用? -
@TheGeneral;是的,我已经设置了一个断点。
frmSearchTriggerEvent未触发。 @SomeBody;我还检查了frmSearchList.isOpenedProject是真的,我已经用断点验证了。 -
问题解决了,我可能已经找到了原因。检查答案。
-
但是.. 发布的代码似乎没有实现要求。你说“表格A打开表格B,表格B打开表格C,我希望表格C在表格C关闭时做一些事情” - 发布的代码附加了一个事件处理程序来表格B的关闭?
标签: c#