一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

WM有約(一):你好,CF

Written by Allen Lee

 

來,和CF打個(gè)招呼!

在這個(gè)系列里,我將會(huì)使用Visual Studio 2008來創(chuàng)建Windows Mobile 6 Professional應(yīng)用程序,如果你也想在自己的計(jì)算機(jī)上體驗(yàn)一下,那么請先安裝Visual Studio 2008和Windows Mobile 6 Professional SDK

圖 1

創(chuàng)建一個(gè)新的項(xiàng)目,接著選擇Visual C#/Smart Device/Smart Device Project項(xiàng)目模板,然后輸入項(xiàng)目名稱,最后單擊OK打開Add New Smart Device Project對話框:

圖 2

在Add New Smart Device Project對話框里,選擇Windows Mobile 6 Professional SDK作為目標(biāo)平臺(tái),選擇.NET Compact Framework Version 3.5作為目標(biāo)平臺(tái)上運(yùn)行的CF的版本,選擇Device Application作為項(xiàng)目模板,單擊OK完成項(xiàng)目的創(chuàng)建:

圖 3

在繼續(xù)之前,讓我們先把目標(biāo)設(shè)備設(shè)為Windows Mobile 6 Professional Emulator,把Form1的FormFactor屬性設(shè)為Windows Mobile 6 Professional:

圖 4

圖 5

好了,我們可以把目光投向Form1了。現(xiàn)在,把一個(gè)Label拖到Form1上,接著把它的Text屬性設(shè)為"Hello, CF!",然后調(diào)整一下它的位置和對齊方式:

圖 6

一切就緒之后,就可以單擊Start Debugging了,此時(shí),你會(huì)看到Deploy Alt對話框,請確保你所選擇的是Windows Mobile 6 Professional Emulator,然后單擊Deploy:

圖 7

在部署Alt之前,Visual Studio 2008會(huì)檢查目標(biāo)設(shè)備上是否部署了.NET Compact Framework 3.5,如果沒有,它會(huì)先部署.NET Compact Framework 3.5,再部署Alt。一切順利的話,你將會(huì)看到運(yùn)行在模擬器上的Alt:

圖 8

等一下!誰要這種東西啊?

 

那么,你想要的是什么?

首先,把中間那個(gè)Label刪除,在Form1的正中放一個(gè)MonthCalendar。接著,給Form1添加Pin和Save兩個(gè)菜單項(xiàng)。我想要的界面大致如下:

圖 9

當(dāng)我選中某天并單擊Pin時(shí),MonthCalendar中的那天就會(huì)加粗;當(dāng)我選中連續(xù)的幾天并單擊Pin時(shí),MonthCalendar中的那幾天都會(huì)加粗;而當(dāng)我選中某個(gè)周六時(shí),MonthCalendar中的那個(gè)周六及其相鄰的周五和周日都會(huì)加粗。當(dāng)我單擊Save時(shí),MonthCalendar中所有加粗的日期都會(huì)保存下來,每次啟動(dòng)應(yīng)用程序時(shí),保存的日期將會(huì)在MonthCalendar上加粗顯示。

 

釘住日期

當(dāng)選中的日期是周六時(shí),我們可以計(jì)算它的前一天和后一天,接著把它們添加到某個(gè)用來儲(chǔ)存選中日期的集合里,然后把這個(gè)集合里的日期關(guān)聯(lián)到MonthCalendar的BoldedDates屬性上:

代碼 1

而對于另外兩種情況,我們可以統(tǒng)一處理。當(dāng)我們選中連續(xù)的幾天時(shí),MonthCalendar并非告訴我們具體是哪幾天,而是通過SelectionStart和SelectionEnd兩個(gè)屬性告訴我們首尾兩天,中間的日期需要我們自己計(jì)算。如果SelectionStart和SelectionEnd兩個(gè)屬性是同一天,那就意味著只選中一天。于是,我們可以這樣:

代碼 2

有了PinWeekend和PinRange兩個(gè)方法,我們就可以處理Pin的Click事件了:

代碼 3

 

保存選中的日期和讀取保存的日期

假設(shè)用來保存日期的文件和應(yīng)用程序放在同一個(gè)文件夾里,那么我們可以通過下面代碼獲取文件的路徑:

代碼 4

要把一組日期保存到文件里,我們可以這樣:

代碼 5

而要讀取文件里的日期,我們可以這樣:

代碼 6

那么,我們在什么時(shí)候調(diào)用這兩個(gè)方法呢?我們知道,F(xiàn)orm1上有一個(gè)Save菜單項(xiàng),當(dāng)用戶單擊這個(gè)菜單項(xiàng)的時(shí)候,我們應(yīng)該調(diào)用SavePinnedDates方法:

代碼 7

另外,當(dāng)用戶關(guān)閉應(yīng)用程序時(shí),我們也應(yīng)該調(diào)用SavePinnedDates方法:

代碼 8

你可能會(huì)問:"為什么不用Closing事件?"這是因?yàn)楫?dāng)我們單擊窗體右上角的交叉時(shí),應(yīng)用程序?qū)嶋H上只是最小化到后臺(tái)而不是關(guān)閉,此時(shí)觸發(fā)的是Deactivate事件。

至于日期的讀取,我們可以在Form1的Load事件觸發(fā)時(shí)執(zhí)行:

代碼 9

還差什么呢?嗯,或許你已經(jīng)想到了,當(dāng)應(yīng)用程序第一次運(yùn)行的時(shí)候,用來保存日期的文件并不存在,而此時(shí)應(yīng)用程序卻要從這個(gè)文件中讀取數(shù)據(jù),那將會(huì)引發(fā)異常。對于這個(gè)問題,我們有兩個(gè)應(yīng)對措施,一個(gè)是每次啟動(dòng)應(yīng)用程序的時(shí)候檢查這個(gè)文件是否存在,如果不存在就創(chuàng)建一個(gè)空白的文件;另一個(gè)是在應(yīng)用程序的安裝程序里包含一個(gè)空白的文件,安裝應(yīng)用程序的時(shí)候把這個(gè)文件一并安裝到應(yīng)用程序文件夾里。這兩種方案各有利弊,這里我選擇第一種方案(我這樣做并沒有什么特別的理由,只是想這樣做而已):

代碼 10

這個(gè)方法將會(huì)在Form1的構(gòu)造函數(shù)里調(diào)用:

代碼 11

 

模擬運(yùn)行

接下來就是在模擬器里運(yùn)行這個(gè)應(yīng)用程序,步驟大體上和前面的"Hello, CF!"類似,你要做的只是單擊Start Debugging。噢,天哪,應(yīng)用程序的主窗體都還沒出來就拋了個(gè)異常:

圖 10

原來,我沒有釋放InitializeFile方法里創(chuàng)建的文件,GC也沒來得及幫我"擦屁股",所以當(dāng)LoadPinnedDates方法試圖讀取文件的時(shí)候就出錯(cuò)了。知道問題的癥結(jié)就好辦了:

代碼 12

重新執(zhí)行調(diào)試,你將會(huì)看到應(yīng)用程序的主窗體:

圖 11

試一下釘住日期的功能:

圖 12

基本上可以過關(guān),但有一個(gè)小問題,就是最多只能連續(xù)選中7天,這個(gè)問題可以通過修改MonthCalendar的MaxSelectionCount屬性來解決。

單擊Save之后,通過資源管理器找到PinnedDates.txt文件,用Word Mobile打開后可以看到選中的日期都保存下來了:

圖 13

 

你還想要什么?

"我不知道,但我隨時(shí)都可能會(huì)有新的想法。"我不知道是否有辦法在開始的時(shí)候就能收集到我的(絕)大部分需求,但相比之下,我更喜歡邊做邊用邊修改的做法。我還想要什么呢?現(xiàn)在我的腦子里能想到的是:

  • 可以配置最大連續(xù)選擇范圍。
  • 可以配置允許選擇的日期范圍,比如說不能選擇2008年10月17日之前的日期。
  • 過去的日期不能選擇,比如說不能選擇昨天。
  • 支持日期的排除,比如說2009年1月17日到2009年1月31日不能選。
  • (其它)

下一集,我們將會(huì)探討如何實(shí)現(xiàn)這些需求。

 

相關(guān)文章:WM有約(二):配置信息

NET技術(shù)WM有約(一):你好,CF,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美激情视频二区 | 亚洲欧洲无码一区二区三区 | 99久久久精品免费观看国产 | 四虎影视在线观看永久地址 | 中国一级特黄真人毛片免 | 亚洲免费三区 | 日韩三级中文字幕 | 精品久久久久久无码中文字幕 | 起碰成人免费公开网视频 | 国产中文视频 | 精品在线免费视频 | 特别黄的免费视频大片 | 日韩ab| 国内精品一区视频在线播放 | 好吊操在线观看 | 免费人成a大片在线观看动漫 | 久久久久久久久影院 | 丁香婷婷在线 | 奇米第四狠狠777高清秒播 | 国产igao激情在线观看 | 欧美激情视频免费 | 二区三区在线 | 国产真实伦视频在线观看 | 天天躁日日躁成人字幕aⅴ 天天躁日日躁狠狠躁中文字幕老牛 | 中文字幕第二一区 | 五月开心激情 | 欧洲精品码一区二区三区免费看 | 国产成在线观看免费视频 | 人成精品| 好吊日在线 | 91精品国产自产在线观看高清 | 玖玖国产精品视频 | 国产++欧洲韩国野花视频 | 丁香激情六月天 | 亚洲狠狠97婷婷综合久久久久 | 亚洲一区精品伊人久久伊人 | 天天做天天玩天天爽天天 | 伊人五月在线 | 狠狠色噜噜狠狠狠狠米奇7777 | 中文字幕日韩精品中文区 | 91国内揄拍国内精品对白 |