【问题标题】:Call public method from Form Collection Question从表单收集问题调用公共方法
【发布时间】:2022-11-30 06:43:35
【问题描述】:

我通过表单集合隐藏和显示表单作为用户超时功能,并且需要在每个表单中调用一个公共方法,因为我再次显示它以使用登录用户更新表单(如果它发生变化)。

但是,我对此有疑问,因为我似乎无法直接从表单集合的迭代中执行此操作。有人有什么建议吗?

这是我正在处理的代码。很感谢任何形式的帮助!

FormCollection fc = Application.OpenForms;

foreach (Form frm in fc)
{
  if (frm.Visible == false && frm.Name != "FStart" && frm.Name != "FMain")
  {
     //Here I would like to call frm.UpdateUser(.....);
     frm.Show();
  }
}

我感谢大家的帮助。该方法在每种形式中都是 public void。

我试图从表单集合访问公共方法,并且我试图直接访问该方法。

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    尝试使用dynamic keyword 访问方法UpdateUser。这是一个例子:

    FormCollection fc = Application.OpenForms;
    
    foreach (dynamic frm in fc)
    {
        if (frm.Visible == false && frm.Name != "FStart" && frm.Name != "FMain")
        {
           frm.UpdateUser(); //You will still have to add the arguments....
           frm.Show();
        }
     }
    

    请记住,当您使用 dynamic 关键字时,它并不关心您尝试调用什么方法,或者您提供给它们的参数,所以在使用它时要小心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 2011-08-16
      • 2019-09-03
      • 2015-08-26
      • 1970-01-01
      相关资源
      最近更新 更多