加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows表单C#按代码更改用户控件

发布时间:2020-12-14 02:14:02 所属栏目:Windows 来源:网络整理
导读:我有一个窗体,我不想让任何其他窗体形式只是一个窗体和不同的用户控制如何在用户控件之间进行更改,例如隐藏一个并以编程方式显示其他用户控件? private void Btt_info_Click(object sender,EventArgs e){ Frm_Main frm_main = new Frm_Main(); frm_main.Con
我有一个窗体,我不想让任何其他窗体形式只是一个窗体和不同的用户控制如何在用户控件之间进行更改,例如隐藏一个并以编程方式显示其他用户控件?

private void Btt_info_Click(object sender,EventArgs e)
{
    Frm_Main frm_main = new Frm_Main();
    frm_main.Controls["panel1"].Controls.Clear();
    UC_Info uc_info = new UC_Info();
    frm_main.Controls["panel1"].Controls.Add(uc_info);
}

我添加了这个,但它不起作用

解决方法

添加容器控件(如果我没记错的话,工具箱中有容器部分?),就像面板一样.为您想要动态切换的内容创建用户控件.因此,请像’HomePage’用户控件和’LoginPage’用户控件.动态添加要显示的用户控件到容器.如果需要,将其从容器中删除并添加其他用户控件:

Panel myPanel = new Panel();
LoginPage ctlLoginPage = new LoginPage();
HomePage ctlHomePage = new HomePage();

//add the loginpage to the panel first
myPanel.Controls.Add(ctlLoginPage);

...do stuff...

//remove whatever control is currently in the Panel
myPanel.Controls.Clear();
//add the other control,the HomePage control instead now
myPanel.Controls.Add(ctlHomePage);

..do other stuff...

我通常这样做,所以你将表单本身打开以添加可能在不同“页面”之间共享的常用控件和内容.

编辑:请注意,我通常会在设计器中添加面板,而不是在代码中动态创建它.这只是一个例子.

编辑:你的mainform和usercontrols之间的交互可以用几种不同的方式处理,我并不是说这些都是正确的方法.

>您在Mainform上为Panel创建静态属性,以便这样做
您可以随时访问它以交换控件.

在这个例子中,我还将为它添加一个静态方法

enum PanelControlsEnum {HomePage,LoginPage};
public static Panel MyContainerPanel {get;set;}
public static void SwitchPanelControls(PanelControlsEnum selControl){
  ..put your switch panels code here..
}

然后在你的usercontrol中调用一个预定义的方法,例如:

MainForm.SwitchPanelControls(PanelControlsEnum.HomePage);

>另一种方法是绑定主窗体上的按钮单击事件
而不是在表格内.

像这样:

HomePage ctlHomePage = new HomePage();
ctlHomePage.Click += MyClickEvent;
myPanel.Controls.Add(ctlHomePage)

private void MyClickEvent(object sender,RoutedEventArgs e)
{
  ..switch user control code here...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读