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

 我来答
百度网友d242235
推荐于2017-11-22 · TA获得超过2385个赞
知道大有可为答主
回答量:1403
采纳率:84%
帮助的人:799万
展开全部

假设两个用户控件(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还会不会触发
闪星2
2016-05-24 · TA获得超过3006个赞
知道大有可为答主
回答量:2898
采纳率:58%
帮助的人:1015万
展开全部
切换?是指焦点还是?
更多追问追答
追问
在groupbox中显示另外的用户控件
追答
那本来那个用户控件是不显示的吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式