Windows   发布时间:2022-05-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Windows表单C#按代码更改用户控件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个窗体,我不想让任何其他窗体形式只是一个窗体和不同的用户控制如何在用户控件之间进行更改,例如隐藏一个并以编程方式显示其他用户控件?

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);
}

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

解决方法

添加容器控件(如果我没记错的话,工具箱中有容器部分?),就像面板一样.为您想要动态切换的内容@R_709_10589@控件.因此,请像’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中调用一个预定义的方法,例如:

@H_973_7@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...
}

大佬总结

以上是大佬教程为你收集整理的Windows表单C#按代码更改用户控件全部内容,希望文章能够帮你解决Windows表单C#按代码更改用户控件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: