c# winform以及wpf下子pannel或paneldock里切换多个子窗体的方法
常常遇到在一个主界面,通过不同按键或者菜单,让主显示框加载不同窗口的功能,类似360杀毒软件或者常见的web里的不同频道的功能,将白了,就是只替换主体部分,其他不动。
一、先说winfrom的,比较简单
namespace WindowsFormsApp5
{
public partial class Form1 : Form
{
//这是三个已经创建好的form窗体
ChildForms.ChildAFrm frmA;
ChildForms.ChildBFrm frmB;
ChildForms.ChildCFrm frmC;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//实例化三个窗体
frmA = new ChildForms.ChildAFrm();
frmB = new ChildForms.ChildBFrm();
frmC = new ChildForms.ChildCFrm();
}
private void btn_A_Click(object sender, EventArgs e)
{
showForm(frmA);
}
private void showForm(Form formName)
{
pnl_Frm.Controls.Clear(); // 清空原有的控件
formName.TopLevel = false; // 非顶级窗口
formName.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏
formName.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel
this.pnl_Frm.Controls.Add(formName); // 添加w1窗体
formName.Show();
}
private void btn_B_Click(object sender, EventArgs e)
{
showForm(frmB);
}
private void btn_C_Click(object sender, EventArgs e)
{
showForm(frmC);
}
}
}
二、接着说wpf下,用在容器里显示不同窗体
首先要把子窗体变成控件UserControl,否则无法实现
xaml里的代码:
<DockPanel Name="Pnl_ShowMenu" Height="253" LastChildFill="False" Margin="792,76,67,0" VerticalAlignment="Top" Grid.ColumnSpan="2">
<ContentControl x:Name="Page_Change" HorizontalAlignment="Left" Height="253" Width="426" VerticalAlignment="Top" />
</DockPanel >
然后在button的点击事件里写:
子窗体 pew = new 子窗体();
Page_Change.Content = pew;
c# winform以及wpf下子pannel或paneldock里切换多个子窗体的方法相关推荐
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])...
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- Winform、WPF、Silverlight、MFC区别与联系
WinForm 在Windows中,诸如窗体绘制等功能由GDI(图形设备接口)实现,放在操作系统内核中.Windows Forms在底层使用的是GDI+.GDI+是GDI的"面向对象包装&q ...
- Windows程序设计:MFC 、Winform 和 WPF 比较
MFC生成本机代码,自然是很快,可是消息循环减缓了界面显示速度. WinForm封装了win32的api,多次进行P/invoke操作(大部分使用p/invoke操作封装),速度慢. WPF是一种新的 ...
- winform 与WPF
winform 与WPF 在多线程上的改进性能没大区别,WPF 是富客户端,winform是常见的客户端,就是说wpf实现一些绚丽界面比winform更容易,这就是他们的区别,当然wpf是微软取代wi ...
- 浅析.Net 在 winform及wpf中涉及界面交互的多线程类的封装
我们在开发客户端程序时,经常要用到多线程 而我们知道 , .Net 中从线程安全的考虑,对控件改变的调用要通过Invoke, beginvoke 来进行,这就涉及怎么进行工作线程与界面的互操作. 本文 ...
- winform,wpf全屏 还显示任务栏的解决方法
winform,wpf全屏 还显示任务栏的解决方法 参考文章: (1)winform,wpf全屏 还显示任务栏的解决方法 (2)https://www.cnblogs.com/Viki/archive ...
- 基础tips:.NET和ASP.NET还有ASP到底是什么?客户端WinForm和WPF的区别?前端三大框架,webpack和vite的比较,android三大框架.
1..NET和ASP.NET分别是什么? .NET是微软的一个开发平台,其主要核心就是.NET Framwork,这个平台的一大特点就是跨语言性,不管是什么语言,c.c++.c#.F#.J#.vb等语 ...
- 2021-12-12 WPF面试题 相对于Winform,WPF有什么优势?
相对于Winform,WPF有什么优势? 1 - 绑定(更简约的编码) 2 - 灵活的外观和感受(资源和样式) 3 - 声明式编程 (XAML) 4 - 表现层混合动画(动画开发简单) 5 - 快速加 ...
- A9G GPS定位系统介绍(物联网、.NET Core web、Winform、Wpf、STM32)
内容介绍 GPS定位系统主要实现的功能是基于GPS对远程物体进行无线追踪,GPS模块采用安信可的A9G.该系列主要涉及到的知识点包括: 1.基于asp.net core web 3.1\5.0\6.0 ...
最新文章
- Retrofit 原理解析
- 以下不是python文件读写方法的是-python 文件读写 - 刘江的python教程
- 【项目实战课】基于Pytorch的DCGAN人脸嘴部表情图像生成实战
- 814:The Letter Carrier's Rounds
- 神策分析 1.10 推数据全景化,跨部门联动释放共享价值
- RFileWriteStream 写入汉字
- iOS开发——处理1000张图片的内存优化
- kubernetes+docker
- Android手机刷机失败的自救方法
- npm ERR! command failednpm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuild
- SQL:解决PostgreSQL数据库传输出现ERROR: invalid byte sequence for encoding “UTF8“: 0xe5 0x9b 0x20
- python常见报错异常大全,根据异常找出根本问题,一键解决,建议收藏
- Mac环境下AndroidStudio关于 Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7的错误
- php电竞酒店系统,星云电竞酒店管理系统
- CleanMyPC最新2022win系统清理工具软件
- 安装VS2010旗舰版时出现.Net framework4.0,安装失败
- Win8.1安装与初次体验(图赏)
- mysql经典45道题_MySQL查询 45道练习题
- [Power Query] 添加列
- 无延时直播/超低延时直播画面同步性测试(实测组图)
热门文章
- 软件测试中搭建测试环境?
- CorelDRAW插件-GMS开发-VBA注册-机器码-CDR(八)
- 自制Wi-Fi无线信号放大器(罐形)全教程
- cad转换成pdf怎么转?
- vSphere备份实践(一)——用赛门铁克备份还原vSphere中的虚拟机
- 自定义android 平板,【图】把android平板电脑装进车机 自己动手diy安卓车载电脑...
- 一些知识点,点击波纹,Toolbar和侧滑视图结合等
- 将数组排列成左边小,中间相等,右边大的形式 给定链表节点数组和某个值
- dnf加物理攻击的卡片有哪些_dnf物理攻击宝珠有哪些 dnf90版本物理攻击宝珠-下载吧...
- 传智.Net精品就业班招生简章