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... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-8 – 在Windows 8应用程序中为DispatcherTimer的Ti
- windows10 Ubuntu子系统下卸载Mysql重装
- laravel – npm在vagrant / homestead / windows上安装错误
- Windows Server 2008 – 文件权限和管理员
- windows-8 – 如何在Windows 8.1(IE11和Modern UI)上调试PA
- windows-phone-7 – MvvmCross本地化:在运行时切换
- Azure角色正在循环–WaHostBootstrapper.exe崩溃,故障模块n
- Windows窗体的C#财务图表库?
- 如何使用Powershell获取Windows服务的公司名称
- Windows计划任务实现MYSQL冷备份
推荐文章
站长推荐
- windows-server-2008 – “右键单击文件”会更新
- windows-server-2008-r2 – RRAS不会使用/ 23路由
- 在Windows 2008中,我应该重命名管理员帐户还是禁
- 为什么在Microsoft SQL Server中使用“Y”/“N”
- windows-server-2008-r2 – Windows 2008 * R2 *
- windows – NTFS的最大理论数据传输吞吐量是多少
- windows-server-2012 – 启动徽标后的Windows Se
- 如何为Win32应用程序中的所有窗口设置默认字体?
- VUE-Windows系统下搭建vue环境
- Qt:没有为Windows发布版本生成map / pdb文件
热点阅读