C# WinForm(VS2017)中如何在子窗体代码内调用主窗体openChildForm方法
WinForm 子窗体调用主窗体切换方法的问题
- 开发环境:基于C#语言、Visual Studio 2017 开发Windows Form桌面应用
- 现有功能基础:已参照通用侧边面板菜单实现方案完成主窗体框架搭建,点击侧边栏的菜单项时,可正常将对应子窗体加载到主窗体的内嵌展示面板中
- 当前待实现需求:当某个子窗体被加载显示后,需要在该子窗体自身的业务代码逻辑中,触发主窗体的子窗体切换逻辑,用新的目标子窗体替换当前正在展示的旧子窗体
主窗体中已封装好的子窗体加载、替换核心逻辑如下:
private Form activeForm = null; private void openChildForm(Form childForm) { if (activeForm != null) activeForm.Close(); activeForm = childForm; childForm.TopLevel = false; childForm.FormBorderStyle = FormBorderStyle.None; childForm.Dock = DockStyle.Fill; childFormPanel.Controls.Add(childForm); childFormPanel.Tag = childForm; childForm.BringToFront(); childForm.Show(); }
目前存在的实现障碍:
上述openChildForm方法是主窗体的私有成员方法,未对外暴露访问权限,子窗体代码无法直接调用该方法完成跨窗体的子窗体切换,需要对现有代码结构做适配改造,支持子窗体在自身逻辑中触发主窗体的切换操作。
内容的提问来源于stack exchange,提问作者lhunter664
相关产品推荐
相关产品推荐

