<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評(píng)論-598  文章-0  trackbacks-0

    1.如何真正的退出程序,而不是隱藏窗體?
    Windows Mobile中當(dāng)你點(diǎn)擊X的時(shí)候,并不是真正的關(guān)閉窗體,而是隱藏窗體,需要在應(yīng)用程序的每個(gè)Form中調(diào)用一個(gè)函數(shù)才可以。

            private void InfoMain_Closed(object sender, EventArgs e)
            
    {
                Application.Exit();
            }


    每個(gè)窗體的Closed事件中加入Application.Exit();才能真正的退出程序。

    2.如何讓窗體跟著輸入法窗口上移
    當(dāng)輸入文字時(shí)需要打開輸入法,而當(dāng)打開輸入法的時(shí)候輸入法會(huì)直接蓋掉下層的程序界面,導(dǎo)致有時(shí)候窗體下方的控件無法進(jìn)行操作(輸入文字,點(diǎn)擊按鈕等),那么這個(gè)時(shí)候就需要我們在輸入法狀態(tài)變更的時(shí)候出發(fā)一些事件,讓輸入法窗口不要蓋住程序。
    首先每次創(chuàng)建Form,最好都先添加一個(gè)panel做控件的上層容器,設(shè)定好相對(duì)panel的位置,這樣控件才會(huì)根據(jù)panel的變化而變化。之后給InputPanel的EnabledChanged事件加入下面的代碼:

            private void inputPanel1_EnabledChanged(object sender, EventArgs e)
            
    {
                
    if (inputPanel1.Enabled)
                
    {
                    
    this.panel1.Dock = DockStyle.None;
                    
    this.panel1.Height = inputPanel1.VisibleDesktop.Height;
                }

                
    else
                
    {
                    
    this.panel1.Dock = DockStyle.Fill;
                }

            }
    當(dāng)輸入法打開的時(shí)候panel不再占據(jù)全屏,而是跟除了輸入法外的可視化范圍一樣高。輸入法關(guān)閉時(shí),panel恢復(fù)占據(jù)全屏。當(dāng)然panel的AutoScroll要設(shè)定為true。

    3.如何創(chuàng)建非全屏Form?
    首先需要你創(chuàng)建一個(gè)全屏的Form,然后將以下參數(shù)設(shè)定為指定值
    ControlBox = false;
    FormBorderStyle = none;
    MinimizeBox = false;
    WindowState = normal;
    Size = 設(shè)置為你想要的大小即可。

    這樣的非全屏窗體不帶邊框不帶標(biāo)題,只有一個(gè)光禿禿的Form。如果你需要那些邊框和標(biāo)題使得界面更加美觀,則可以參考以下文章:
    http://www.christec.co.nz/blog/archives/134
    牽扯到了一些對(duì)底層的操作。

    4.【實(shí)用技巧】Windows Mobile 手機(jī)連接電腦時(shí),如何使用GPRS上網(wǎng),同時(shí)跟電腦保持連接。(USB和GPRS共存問題) (3-19 22:08)

    5.如何提高Windows Mobile中 Http上傳文件的穩(wěn)定性?
    其實(shí)上傳文件最好還是用FTP,因?yàn)楸容^穩(wěn)定,各方面也很成熟。如果是和業(yè)務(wù)系統(tǒng)相關(guān)的一些東西,也不要緊,客戶端上傳完成之后請(qǐng)求下服務(wù)端的一個(gè)服務(wù),通知他業(yè)務(wù)數(shù)據(jù)上傳完畢,然后服務(wù)端去做一些操作,之后可以回應(yīng)給客戶端就可以了。
    但如果非要用HTTP的話,也不要緊,雖然無線網(wǎng)絡(luò)用HTTP傳輸文件不是太穩(wěn)定,但總體上還是不錯(cuò)的,只是你需要設(shè)計(jì)一套斷點(diǎn)續(xù)傳機(jī)制,來保證就算網(wǎng)絡(luò)發(fā)生異常了,也可以接著上次的再傳。除了使用斷點(diǎn)續(xù)傳機(jī)制,還有一個(gè)技巧,就是讓客戶端和服務(wù)端的連接超時(shí)時(shí)間(ConnectionTimeout)盡可能的長些,比如設(shè)置為200秒,這是在開發(fā)過程中總結(jié)出來的,我測試過很多次,發(fā)現(xiàn)如果超時(shí)時(shí)間很長的話,多數(shù)大文件(> 500kb)其實(shí)一次就可以傳遞上去,之前傳不上去,多數(shù)是因?yàn)檫B接超時(shí),而服務(wù)端如果使用tomcat,拋出Socket read timeout異常之后,客戶端多數(shù)收不到,因?yàn)榇藭r(shí)的客戶端還在朝Request中的Outputstream寫數(shù)據(jù),還沒有走到request.GetResponse()這一步,這就造成了,客戶端發(fā)送完數(shù)據(jù)之后才知道客戶端異常了,浪費(fèi)了很多流量,也降低了很多效率,大家可以注意一下。

    6.如何建立GPRS連接?
    移動(dòng):
    XmlDocument configDoc = new XmlDocument();
    configDoc.LoadXml(
                            
    "<wap-provisioningdoc>" +
                            
    "<characteristic type=\"CM_GPRSEntries\">" +
                            
    "<characteristic type=\"xxx\">" +
                            
    "<parm name=\"DestId\" value=\"{ADB0B001-10B5-3F39-27C6-9742E785FCD4}\" />" +
                            
    "<parm name=\"UserName\" value=\"1\" />" +
                            
    "<parm name=\"Password\" value=\"1\" />" +
                            
    "<parm name=\"Domain\" value=\"\" />" +
                            
    "<characteristic type=\"DevSpecificCellular\">" +
                            
    "<parm name=\"GPRSInfoValid\" value=\"1\" />" +
                            
    "<parm name=\"GPRSInfoAccessPointName\" value=\"xx.js\" />" +
                            
    "</characteristic>" +
                            
    "</characteristic>" +
                            
    "</characteristic>" +
                            
    "</wap-provisioningdoc>"
                            );
    ConfigurationManager.ProcessConfiguration(configDoc, 
    false);
    電信:
    XmlDocument configDoc = new XmlDocument();
    configDoc.LoadXml(
                            
    "<wap-provisioningdoc>" +
                            
    "<characteristic type=\"CM_GPRSEntries\">" +
                            
    "<characteristic type=\"jsmsa\">" +
                            
    "<parm name=\"DestId\" value=\"{ADB0B001-10B5-3F39-27C6-9742E785FCD4}\" />" +
                            
    "<parm name=\"UserName\" value=\"xxxx.js\" />" +
                            
    "<parm name=\"Password\" value=\"xxxx\" />" +
                            
    "<parm name=\"Domain\" value=\"\" />" +
                            
    "<parm name=\"Phone\" value=\"#777\"/>" +
                            
    "<parm name=\"DeviceType\" value=\"modem\"/>" +
                            
    "<parm name=\"DeviceName\" value=\"Cellular Line\"/>" +
                            
    "<parm name=\"Enabled\" value=\"1\"/>" +
                            
    "<parm name=\"RequirePw\" value=\"1\"/>" +
                            
    "<parm name=\"DeviceSpecificRAW\" value=\"b4010000b4010000b4010000010000000f0000000100000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"/>" +
                            
    "</characteristic>" +
                            
    "</characteristic>" +
                            
    "</wap-provisioningdoc>"
                            );
    ConfigurationManager.ProcessConfiguration(configDoc, 
    false);
    修改連接的優(yōu)先級(jí):
                    string configpreferred = " <wap-provisioningdoc> " +
                                             
    " <characteristic   type=\"cm_planner\"" +
                                             
    " <characteristic   type=\"preferredconnections\"" +
                                             
    " <parm   name=\"{ADB0B001-10B5-3F39-27C6-9742E785FCD4}\"    value=\"jsmsa\"   /> " +
                                             
    " </characteristic> " +
                                             
    " </characteristic> " +
                                             
    " </wap-provisioningdoc> ";

    7.發(fā)起和斷開連接
    這兩個(gè)方法需要另外兩個(gè)類的協(xié)助
           public static void MakeConnection()
            {
                
    try
                {
                    ConnectionManager connectManager 
    = new ConnectionManager();
                    
    int idx = -1;
                    List
    <ConnectionManager.CONNMGR_DESTINATION_INFO> lstIdentifiers = connectManager.EnumConnDestinations();

                    
    for (int i = 0; i < lstIdentifiers.Count; i++)
                    {
                        
    if ("Internet 連接".Equals(lstIdentifiers[i].Description))
                        {
                            idx 
    = i;
                            
    break;
                        }
                    }

                    
    if (idx > -1)
                    {
                        connectManager.EstablishConnection((
    uint)idx);
                    }
                }
                
    catch
                {
                }
            }

     

            public static void Disconnect()
            {
                
    try
                {
                    RASManager.RASCONN[] conns 
    = RASManager.GetRASConnections();
                    
    if (conns != null && conns.Length > 0)
                    {
                        
    foreach (RASManager.RASCONN conn in conns)
                        {
                            
    try
                            {
                                RASManager.HangUp(conn.hRasConnHandle);
                            }
                            
    catch (Exception ex)
                            {
                            }
                        }
                    }
                }
                
    catch
                {
                }
            }



    ---------------------------------------------------------
    專注移動(dòng)開發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2008-10-07 13:02 TiGERTiAN 閱讀(1806) 評(píng)論(0)  編輯  收藏 所屬分類: DotNetWindows Mobile
    主站蜘蛛池模板: 无码欧精品亚洲日韩一区| 亚洲日本一区二区一本一道| 日本免费v片一二三区| 亚洲国产婷婷香蕉久久久久久| 亚洲日韩国产一区二区三区| 亚洲av无码一区二区三区网站| 亚洲精品国产电影午夜| 亚洲日韩乱码中文字幕| g0g0人体全免费高清大胆视频| 无码日韩精品一区二区免费暖暖| AA免费观看的1000部电影| 亚洲成a人片在线播放| 久久噜噜噜久久亚洲va久| 日韩亚洲产在线观看| 日韩在线视频线视频免费网站| 国产一精品一AV一免费| 最近中文字幕无吗高清免费视频| 亚洲成人高清在线| 亚洲色大成网站www永久| 337P日本欧洲亚洲大胆艺术图 | 无码精品国产一区二区三区免费| 三年片在线观看免费大全 | 蜜桃视频在线观看免费网址入口| 亚洲av中文无码| 精品亚洲成a人片在线观看少妇 | 中国好声音第二季免费播放| 国产乱子精品免费视观看片| 亚洲国产精品一区二区九九| 亚洲美女中文字幕| 深夜久久AAAAA级毛片免费看| 亚洲精品在线免费观看视频| 亚洲国产精品成人网址天堂| 亚洲无限乱码一二三四区| yellow视频免费看| 毛片免费全部播放一级| 亚洲成av人在线视| 真人无码作爱免费视频| 蜜臀98精品国产免费观看| 亚洲色偷偷狠狠综合网| 国产亚洲精品成人AA片| 久久99热精品免费观看牛牛|