关闭父窗体Y时,如何选择子窗体X中的值?+1

本文关键字:窗体 选择 何选择 | 更新日期: 2023-09-27 17:51:05

这是自定义winform类的一部分:

public partial class frmFindAppointments {
    public virtual void Init(int patientId, bool booleanValue) {
        // will receive the patientId
    }
    public delegate void goToCalendarHandler();
    public goToCalendarHandler goToCalendar;
}

在父窗口y中,我添加了雇主的名称,当我关闭父窗口y时,我希望在子窗口x中选中该名称。

I tried with

using(frmFindAppointments frm=new frmFindAppointments()) {
    frm.goToCalendar+=new frmFindAppointments.goToCalendarHandler(GoToCalendar);
    frm.Init(Patient.Id, false);
    frm.ShowDialog(this);
}

关闭父窗体Y时,如何选择子窗体X中的值?+1

嗯,我很难理解你的代码片段。但实现这一点的简单方法是创建一个SelectedEmployer属性,将其设置为y表单的Close处理程序中UI上当前选择的值。然后在X形式中,只要保持对y形式的引用,即使表单y是关闭的,也可以始终检索该值。这样行吗?

创建带有需要返回的公共属性的子窗口。如:

public CForm : Form {
    public string Result { get; private set; } }

完成后再设置这个属性:

public CForm : Form {
    public void Finished() { Result = "all okay"; } }

然后打开as对话框,得到你需要的结果:

using (CForm form = new CForm)
{
    form.ShowDialog();
    string dialogResult = form.Result; // Here you are.
}