成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

基于Windows Mobile 5.0的掌上天氣預報設計

2010-08-28 10:52:45來源:西部e網作者:

概述:描述一個基于Windows mobile 5.0的天氣預報程序設計過程
開發工具:Visual studio 2005(C#/)Windows Mobile 5.0 Pocket PC SDK/WM6 模擬器
試用機型:多普達 D600
關鍵字:.NET CF,PPC, WebService,Windows mobile, 天氣預報


  下載安裝程序:PocketWeatherInstall.cab
  下載源代碼:PocketWeather.rar

  總的來說,使用.NET Compact Framework 設計程序還是比較容易入手的,本文就在設計過程中碰到的幾個問題做一個簡要說明。

1. 天氣接口

采用一個網上免費的Web服務,來源www.WebXml.com.cn,使用非常方便,調用getWeatherbyCityName返回一個string數組,包含相關天氣信息。   

string city = this.lblCurrentCity.Text.Trim();

PocketWeather.cn.com.webxml.www.WeatherWebService Weather =

new PocketWeather.cn.com.webxml.www.WeatherWebService();

string[] info = Weather.getWeatherbyCityName(city);


2. 獲取程序運行路徑

PPC獲取當前程序路徑還比較麻煩:

public static string GetApplicationDirectory()

  {

       return System.IO.Path.GetDirectoryName(

System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);

   }


3. 保存用戶設置

將用戶設置信息保存在一個DataSet中,然后存儲為本地XML文件:

DataSet ds = new DataSet("LastWeather");          

            DataTable tabLast = new DataTable("Weather");

            tabLast.Columns.Add("KeyStr", typeof(string));

            tabLast.Columns.Add("Content", typeof(string));

            DataRow row = tabLast.NewRow();

            row["KeyStr"] = "lblTodayWeather";

            row["Content"] = this.lblTodayWeather.Text;

            tabLast.Rows.Add(row);          

            row = tabLast.NewRow();

            row["KeyStr"] = "LastModifyTime";

            row["Content"] = SystemConfig.LastModifyTime;

            tabLast.Rows.Add(row);

            ds.Tables.Add(tabLast);

            ds.WriteXml(SystemConfig.GetApplicationDirectory() + """Last.xml");

讀取時從XML文件獲取DataSet,然后再讀取數據。

     DataSet ds = new DataSet();

     ds.ReadXml(SystemConfig.GetApplicationDirectory() + """Last.xml");

     DataTable tabSetting = ds.Tables["Weather"];

     DataRow[] rows = tabSetting.Select("KeyStr='lblTodayWeather'");

     if (rows.Length != 0)

     {

             this.lblTodayWeather.Text = rows[0]["Content"].ToString();

      }            

       rows = tabSetting.Select("KeyStr='LastModifyTime'");

       if (rows.Length != 0)

       {

              SystemConfig.LastModifyTime = rows[0]["Content"].ToString();

       } 

\\

4. 輸入法面板

當彈出輸入法面板是會擋住一些用戶控件,感覺很不好,處理辦法就是將控件放在一個Panel中,設置Panel的AutoScroll屬性為True,在面板狀態改變時同時改變Panel的尺寸。

private Microsoft.WindowsCE.Forms.InputPanel m_inp

= new Microsoft.WindowsCE.Forms.InputPanel();

public FormOpetion()

        {

            InitializeComponent();

            this.m_inp.EnabledChanged += new EventHandler(m_inp_EnabledChanged);

        }

        void m_inp_EnabledChanged(object sender, EventArgs e)

        {

            m_panel.Size = m_inp.VisibleDesktop.Size;          

        }
 
5. 對話框問題

程序在打開一個對話框時,如果切換到其他程序,然后在系統運行程序列表中會看到兩項記錄,應該避免這種情況;解決辦法就是在程序激活和停用時修改窗口標題:

private void FormOpetion_Deactivate(object sender, EventArgs e)

        {

            this.Text = "";

        }

        private void FormOpetion_Activated(object sender, EventArgs e)

        {

            this.Text = "設置";

        }

6. 其他

還應該考慮在屏幕旋轉時,要重新調整控件的位置。

關鍵詞:C#
主站蜘蛛池模板: 芷江| 尚志市| 成都市| 孝昌县| 嘉义县| 南康市| 黄大仙区| 上饶市| 曲松县| 柳江县| 郸城县| 玛曲县| 绥滨县| 延寿县| 鲜城| 宜兴市| 岳阳市| 车致| 崇文区| 台江县| 潼南县| 中方县| 皋兰县| 揭阳市| 甘洛县| 呼和浩特市| 永年县| 开江县| 女性| 青冈县| 娱乐| 枝江市| 峨眉山市| 广昌县| 青岛市| 高台县| 荥经县| 宁河县| 彩票| 长海县| 治县。|