Wince的界面切换体系——用户控件的合理使用
2015-12-22 21:41
405 查看
wince是上一个使用的语言,现在已经很少使用了。
这里主要分享一种Wince中winfrom使用用户控件来切换界面的体系。
这个很对于使用wince的用户来说,是很实用的!
针对这种情况,想到了用用户控件的变更来实现界面间的切换。具体怎么实现呢?
1、创建用户控件(User control);
2、在默认创建的From上,声明这个用户控件;
3、在Form上布置一个panel容器,用于存放用户控件;
4、当你点击按钮触发的时候,用一个新的用户控件替换panel上的原有的用户控件。
控件的声明:
初始化panel上的用户控件:
通过以上的代码,你其实应该很清晰看出这个体系的脉络。就是通过panel上的用户控件的变换,来实现你想要的界面变换。
比如,你在
其他的界面也是类似的用法。
简单,实用。
这里主要分享一种Wince中winfrom使用用户控件来切换界面的体系。
这个很对于使用wince的用户来说,是很实用的!
为什么使用用户控件来切换界面
对于Wince来说,这是一种移动终端系统,使用的开发语言是C#,而移动终端上,通常内存和存储空间都较小。不适合每次新开一个界面,都new From()。针对这种情况,想到了用用户控件的变更来实现界面间的切换。具体怎么实现呢?
1、创建用户控件(User control);
2、在默认创建的From上,声明这个用户控件;
3、在Form上布置一个panel容器,用于存放用户控件;
4、当你点击按钮触发的时候,用一个新的用户控件替换panel上的原有的用户控件。
如何使用用户控件切换界面
我们列出对应代码:控件的声明:
<span style="white-space:pre"> </span>public static MainForm userform = null;//工程默认创建的From public UsMenu UsMenu_page = null; //自定义的菜单用户控件 public UsZhizuoMenu UsZhizuoMenu_page = null;//以下都是用户控件 public UsFuzhuangZhizuo UsFuzhuangZhizuo_page = null; public UsFuzhuangQuery UsFuzhuangQuery_page = null; public UsGongxuYijiao UsGongxuYijiao_page = null; public UsSet UsSet_page = null;枚举的定义:用于定位你现在处于哪个界面
public enum PageState { /// <summary> /// 主菜单界面 /// </summary> Index, /// <summary> /// 制作菜单 /// </summary> zhizuomenu, /// <summary> /// 制作 /// </summary> zhizuo, /// <summary> /// 查询 /// </summary> query, /// <summary> /// 工序移交 /// </summary> gongxu, /// <summary> /// 服务设置 /// </summary> set }
MainFrom界面上定义的用户控件的切换:
//主菜单界面 public void openUsMenuForm() { if (UsMenu_page == null) UsMenu_page = new UsMenu(); userform.Text = "主菜单界面"; pnl.Controls.Clear(); pnl.Controls.Add(UsMenu_page); pnl.Tag = PageState.Index; pnl.Focus(); UsMenu_page.pictureBox1.Focus(); } //服务界面 public void openUsSetForm() { UsSet_page = new UsSet(); userform.Text = "设置界面"; pnl.Controls.Clear(); pnl.Controls.Add(UsSet_page); pnl.Tag = PageState.set; pnl.Focus(); UsSet_page.txtIP.Focus(); }
初始化panel上的用户控件:
public MainForm() { InitializeComponent(); userform = this; m_scan.OnDecodeEvent += new DecodeEventHandler(scan_OnDecodeEvent); openUsMenuForm(); }
通过以上的代码,你其实应该很清晰看出这个体系的脉络。就是通过panel上的用户控件的变换,来实现你想要的界面变换。
比如,你在
UsMenu <span style="font-family: Arial, Helvetica, sans-serif;">UsMenu_page </span>这个菜单用户控件上,有几个按钮,分别触发不同的界面,如下:
using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; namespace SmartDeviceConnectSql2005 { public partial class UsMenu : UserControl { public UsMenu() { InitializeComponent(); } private void pictureBox1_Click(object sender, EventArgs e) { MainForm.userform.openUsZhizuoMenuForm(); } private void pictureBox2_Click(object sender, EventArgs e) { MainForm.userform.openUsGongxuYijiaoForm(); } private void pictureBox3_Click(object sender, EventArgs e) { MainForm.userform.openUsSetForm(); } } }这里做的都是界面的跳转。
其他的界面也是类似的用法。
简单,实用。
相关文章推荐
- WinFrom中label背景透明的实现方法
- C#中Winfrom默认输入法的设置方法
- winform异型不规则界面设计的实现方法
- ASP.NET UserControl 通信的具体实现
- C# winfrom 模拟ftp文件管理实现代码
- Android中设置只有程序第一次运行才显示的界面实现思路
- hta 实现的五子棋界面
- wince禁止程序标题栏上的退出按钮示例
- android开发之欢迎界面的小例子
- C#中载入界面的常用方法
- js获取UserControl内容为拼html时提供方便
- android编程实现局部界面动态切换的方法
- Android判断现在所处界面是否为home主桌面的方法
- Android编程实现泡泡聊天界面实例详解(附源码)
- android 引导界面的实现方法
- 重绘控件软件报错,_CrtDbgBreak()
- 在WINCE下操作文件(夹)
- WINCE内存管理
- VC 界面库皮肤库相关信息珍藏
- Android中界面实现全屏显示的两种方式