c#如何实现在一个用户控件中点击button切换到另一个用户控件

如题所述

假设两个用户控件(UserControl)分别为ctrl1,ctrl2,把ctrl1和ctrl2都放在groupbox中,Dock属性都设置为DockStyle.Fill,撑满groupbox。然后在ctrl1内部添加一个事件:

public event Action ControlSwitch;

在ctrl1的button点击事件里这么写:

if(ControlSwitch!=null)
    ControlSwitch();

在ctrl1和ctrl2的父级元素,也就是groupbox所在的Form中注册ctrl1的事件:

ctrl1.ControlSwitch+=SwitchToCtrl2;
private void SwitchToCtrl2()
{
    ctrl1.Visible = false;
    ctrl2.Visible = true;
}

这样就可以了。ctrl1的button点击事件会触发ControlSwitch事件,进而触发Form中的SwitchToCtrl函数,这个函数可以同时访问到ctrl1和ctrl2控件,就能够做到切换。

追问

那ctrl1的visible设置为false后ctrl1上事件或类似timer_tick还会不会触发

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-24
切换?是指焦点还是?追问

在groupbox中显示另外的用户控件

追答

那本来那个用户控件是不显示的吗

追问

就是在groupbox中显示用户控件1,点击控件1中的button后groupbox显示用户控件2

相似回答