从另一个UserControl引用UserControl

时间:2015-11-03 16:37:44

标签: c# winforms

我在这个项目中有一些嵌入式用户控件我坚持使用并且在尝试访问父控件中的按钮状态时,我的返回值并不是我所期待的

 var parentControl = (OrderDetail)this.Parent.Parent;

        // set return based on the OrderDetail control button state
        UltraButton btn = parentControl.Controls.Find("btnReturn", true).FirstOrDefault() as UltraButton;

总是将btn.Enabled = true返回给我,即使表单完成后加载我在这里引用的按钮也没有启用。是否存在我不知道的生命周期事件?

钻研winforms对我来说很少见,所以我确定我错过了什么,只是不确定它是什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

将我的代码放入OnVisibleChanged事件中。

protected override void OnVisibleChanged(EventArgs e)
    {
        base.OnVisibleChanged(e);

        if (Visible && !Disposing)
        {
            // set return change option based on the OrderDetail control button state
            UltraButton btn = parentControl.Controls.Find("btnReturn", true).FirstOrDefault() as UltraButton;

            if (btn != null && (HasPermissions && btn.Enabled))
                actionAllowed = true;
        }
    }