首页 > 解决方案 > 当调用其容器的 Refresh() 方法时,是否应该自动调用 UserControl 的 Refresh() 方法?

问题描述

在 Windows 7 和 Visual Studio 2012 中创建的项目中,我有一个包含以下代码的表单:

public partial class Form1 : Form
{
    private Form2 m_form2;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        m_form2 = new Form2();
        m_form2.Show();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Refreshing form1");
        Refresh();
        m_form2.Refresh();
    }
}

Form2 有以下方法:

    public override void Refresh()
    {
        MessageBox.Show("Refreshing Form2");
        base.Refresh();
    }

Form2 包含 RefreshTestControl 的实例,其中包含此方法:

    public override void Refresh()
    {
        MessageBox.Show("Control is being refreshed.");
        base.Refresh();
    }

我希望当 Form2.Refresh() 被调用时,我的控件被覆盖的 Refresh() 方法会被自动调用,但事实并非如此。为什么不?我做错了什么,还是我只是不明白刷新表单时会发生什么?

标签: user-controls

解决方案


推荐阅读