【问题标题】:winforms, form has been shown, event handler [closed]winforms,已显示表单,事件处理程序 [关闭]
【发布时间】:2015-06-14 09:13:17
【问题描述】:

在 from.Show() 显示表单后,我每次都需要运行某些代码。我尝试了 form_Activated()、form_Loaded()、form.Shown() ......没有什么能按我的意愿工作,它只运行一次,第一次。 有没有简单的方法可以做到这一点? 谢谢。

【问题讨论】:

    标签: c# winforms events


    【解决方案1】:

    您可以编写自己的方法来显示表单并在他身上抛出事件。

    public event EventHandler ShownEx;
    
    public void ShowEx()
    {
        Show();
        OnShownEx();
    }
    
    private void OnShownEx()
    {
        var eventHandler = ShownEx;
        if (eventHandler != null)
            eventHandler(this, EventArgs.Empty);
    }
    

    【讨论】:

      【解决方案2】:

      您可以覆盖表单的 OnVisibleChanged 方法或挂钩 VisibleChanged 事件

      【讨论】:

        【解决方案3】:

        我不太确定您要实现什么,但根据 MSDN,显示表单时显示的事件是最后一个事件。

        我曾经在表单上遇到过同样的问题。我真的不记得当时我做了什么,但我想我把我所有的数据都保存在隐藏的表格中,每次都显示一个新的。

        【讨论】:

        • msdn.microsoft.com,Form.Shown 事件,仅在第一次显示表单时引发 Shown 事件......我需要在每次显示表单时运行它。看来我必须编写自己的事件处理程序来实现这一点......可悲的是
        • 你是在关闭它并重新显示它吗?
        • Hide(),由用户或计时器,然后再次 Show() ...
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 2021-11-18
        • 2015-08-24
        相关资源
        最近更新 更多