【问题标题】:what is the event when a form show表单显示时的事件是什么
【发布时间】:2014-04-22 04:41:36
【问题描述】:

我有一个带有一些按钮的表单 (MainForm),例如 btnInsertContact、btnInsertEmployemant、...

例如,当用户单击 btnInsertContact 时,将显示另一个表单,用户应在其中输入他的联系信息。但 MainForm 不会关闭。

我想要当用户关闭联系表单时发生的事件。

通过此代码,可以显示联系表单,但 MainForm 不会关闭。

    private void btnInsertContact_Click(object sender, EventArgs e)
    {
        frmContact.ShowDialog();
    }

我想在关闭联系表单后更新 MainForm 中的一些信息。

我尝试了 Load 事件,但它不是真的,因为我的 MainForm 没有关闭

我尝试了 Enter 事件,但它不起作用,我不知道为什么。

我应该处理什么事件?

【问题讨论】:

  • 在任何控制值或整个表单的意义上更新一些信息

标签: c# winforms events


【解决方案1】:

如果您想从联系表单中获取值,那么您应该将控件的修饰符分配给 public

//MAIN FORM
//First method 
private void btnInsertContact_Click(object sender, EventArgs e)
{
    frmContact.FormClosed += new EventHandler(ContactForm_Closed);
    frmContact.ShowDialog();
}
private void ContactForm_Closed(object sender, EventArgs e)
{
     //Write ur code here
}

//Second method 
private void btnInsertContact_Click(object sender, EventArgs e)
{   
    frmContact.ShowDialog();
    write ur code here.
}

【讨论】:

    【解决方案2】:

    ShowDialog 函数显示一个模态对话框,因此阻塞。用简单的英语来说,这意味着ShowDialog 函数在对话框关闭(通过用户单击“确定”、“取消”或您提供的其他按钮)之前不会返回(执行)。

    所以您需要做的就是将您的同步代码放在之后调用ShowDialog。 (当然,您可能需要检查DialogResult 属性以确保用户单击了确定或是按钮!)

    【讨论】:

      【解决方案3】:

      Form.ShowDialog() 是一个阻塞调用。程序流程在此方法处停止,直到该方法返回。 ShowDialog() 方法在用户关闭表单时返回。

      拨打ShowDialog()后,您可以在主窗体中简单地更新您的信息:

      private void btnInsertContact_Click(object sender, EventArgs e)
      {
          frmContact.ShowDialog();
      
          // ToDo: Insert your code for updating the main form here
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-20
        • 2015-12-13
        • 1970-01-01
        • 2014-02-17
        • 2014-08-02
        • 2018-03-24
        相关资源
        最近更新 更多