惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Troy Hunt's Blog
F
Fortinet All Blogs
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Register - Security
The Register - Security
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
V
Vulnerabilities – Threatpost
S
Securelist
S
SegmentFault 最新的问题
T
Threat Research - Cisco Blogs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Privacy International News Feed
S
Schneier on Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
GbyAI
GbyAI
Apple Machine Learning Research
Apple Machine Learning Research
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
美团技术团队
Cyberwarzone
Cyberwarzone
C
Cisco Blogs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google Online Security Blog
Google Online Security Blog
M
MIT News - Artificial intelligence
U
Unit 42
V
V2EX
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
B
Blog
博客园 - 叶小钗
Attack and Defense Labs
Attack and Defense Labs
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Hacker News: Ask HN
Hacker News: Ask HN
博客园 - Franky
Engineering at Meta
Engineering at Meta
Schneier on Security
Schneier on Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
酷 壳 – CoolShell
酷 壳 – CoolShell
T
The Blog of Author Tim Ferriss
IT之家
IT之家
W
WeLiveSecurity
Cisco Talos Blog
Cisco Talos Blog
K
Kaspersky official blog
Martin Fowler
Martin Fowler
SecWiki News
SecWiki News

博客园 - JustDI

iPhone开发环境搭建For PC Symbian中的新手问题整理(二) 来盘点下我的2008 手机也能当电脑用?--谈谈未来智能手机操作系统的走向 symbian中的新手问题整理(均有解答) 渐走渐近的symbian,渐行渐远的.NET Symbian C++学习之描述符 J2ME,CompactFramework,c++,我该如何取舍 慵懒的心态 篮球战术谈之快攻 篮球战术谈之1-2-2进攻法 篮球战术谈之经典配合 话说微软刚出的同步框架Sync Services 我看windows mobile数据同步方案 [翻译]一步步教你配置SQL SERVER合并复制(八)代码部分(使用.NET CompactFramework) [翻译]一步步教你配置SQL SERVER合并复制(七)管理Publication [翻译]一步步教你配置SQL SERVER合并复制(六)配置Publisher(下) [翻译]一步步教你配置SQL SERVER合并复制(五)配置Publisher(上) [翻译]一步步教你配置SQL SERVER合并复制(四)提高Distributor的安全性
基于.NET CompactFramework的九宫格控件(附源码)
JustDI · 2008-07-15 · via 博客园 - JustDI

      在网上经常看见有人询问Windows Mobile下的九宫格控件的做法,我曾经也多次上网搜索,但找到的大部分都是c++版本的,于是萌发了自己写一个的念头,先上图片。

     

     选中后。

    
    
选中的效果其实是两张图片的交替结果,因为只针对了240×320这种样式,所以可能很多地方写死了,下面对部分源码的解析。

先定义一个继承自Control的类FlexStartMenu

   public class FlexStartMenu : System.Windows.Forms.Control

定义一个选项子类,因为这个控件中的图片中包含文字,因此我没有将子项的文字画到控件当中去,如果你们有需求的话可以修改OnPain事件,添加一个画文字的方法。

子项类

用泛型的方法,比数组的方式效率要高多了,原先我是采用数组的方式,但在两百条数据的加载效率差得非常明显,具体的时间我没有去测试过,但可以肯定的是装箱拆箱这一步能跳过去的就尽量跳过去。

FlexStartItemCollections

核心部分来了:

核心部分

可能未接触过GDI编程或许看得有点晕(我当初就是这样),建议可以先运行代码,然后变化属性先熟悉控件,然后再修改一些数值来看控件的变化,这样的体会深很多。

前台部分:绑定的过程是很简单的,先定义一组显示的图片和选中后的图片,我是用Imagelist来加载图片的,其实也可以选择不嵌入到程序中的方式,用读取路径的方式。

            for (int i = 0; i <= 8; i++)
            
{
                FlexStartItem m_item 
= new FlexStartItem();
                m_item.Icon 
= imgDefautIcon.Images[i];
                m_item.PressIcon 
= imgPressedIcon.Images[i];
                FlexMenu.Items.Add(m_item);
            }

编后语:贴代码的方式赘述了一个九宫格控件的制作,其实这个控件可以衍生为一个数据列表控件,就像自定义一个双层文本的ListView一样(我就是这么做的),麻雀虽小,五脏俱全,小小的一个控件或许也能有变大的一天。

更新(2008.07.31):有很多朋友给我发MSN说在控件VS2005下编译会出错,Sorry,我没有声明清楚,这个控件我是在vs2008下编写的,用到了.NET CF 3.5的新特性属性设置器,所以很多属性的地方都编译不过去,所以我重新整理了下,针对.NET CF 2.0版本下的源码供大家下载。

附:控件源码下载(.NET CF 3.5)

           源码下载(.NET CF 2.0)