成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

關(guān)于WinCE開發(fā)的一些心得(2)

       嗯,上周沒寫,在書店看了一夜的書,第二天睡了一天。

目前創(chuàng)新互聯(lián)建站已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、祁東網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

       最近項(xiàng)目開發(fā)的差不多了(其實(shí)是在沒有服務(wù)和設(shè)備的情況下開發(fā)程序......),不過還好這兩天設(shè)備終于到了。

       就目前的開發(fā)情況自問自答的寫一點(diǎn)心得,這其中一部分可以用于Winform開發(fā)。

問:關(guān)于DataGrid的使用和重繪

答:這個(gè)在之前的文章中給了一位大神重繪DataGrid的示例,本來我也想也一個(gè)差不多的然后放上來,不過看起來又要延后了關(guān)于WinCE開發(fā)的一些心得(2)關(guān)于WinCE開發(fā)的一些心得(2)。

問:如何實(shí)現(xiàn)輸入指定文本(如只接受數(shù)字,只接受正整數(shù)等),并在有錯(cuò)誤輸入的時(shí)候能夠回退到輸入之前的狀態(tài)

答:首先頁面要有一個(gè)緩存變量,然后在文本框的Text_Change事件里對(duì)緩存變量賦值,在有錯(cuò)誤輸入的時(shí)候?qū)⒕彺孀兞抠x值給文本框,就能實(shí)現(xiàn)回退

        //全局緩存變量
        private string strtextbox1 = string.Empty;
        //文本改變事件
        private void textBox1_TextChanged(object sender, EventArgs e)
        {   //判斷是否為正整數(shù)
             if (!string.IsNullOrEmpty(this.textBox1.Text) 
             && !Regex.IsMatch(this.textBox1.Text, @"^[0-9]\d*$"))
            {   //退回
                this.textBox1.Text = this.strtextbox1;
                MessageBox.Show("Error Input");
            }
            else
            {   //賦值
                this.strtextbox1 = this.textBox1.Text;
            }
        }

問:如何獲得WinCE設(shè)備上掃描到的數(shù)據(jù)

答:就目前我所知道的有兩種,一種是通過硬件廠商提供的SDK,通過掃描事件獲得數(shù)據(jù),這個(gè)方法的缺點(diǎn)是一旦更換成不同品牌的掃描設(shè)備就要修改代碼,所以非常麻煩;另一種就是焦點(diǎn)獲取數(shù)據(jù),這種是最簡(jiǎn)單的,最方便的(我是這樣認(rèn)為的),這個(gè)功能由硬件廠商提供,當(dāng)掃描功能開啟時(shí),掃描到的數(shù)據(jù)會(huì)直接注入到目前焦點(diǎn)所在的地方(例如目前選中的文本框),如果沒有焦點(diǎn),一般會(huì)出現(xiàn)一個(gè)Demo,提示你無需調(diào)用SDK就可以將獲取數(shù)據(jù)之類的說明,其具體的原理,貌似是和鍵盤輸入一樣。這個(gè)方法的問題在于控件焦點(diǎn)的控制。

問:掃描到的數(shù)據(jù)是怎么注入到文本框中的?

答:就目前我所知道的情況,和鍵盤輸入一樣,是一個(gè)一個(gè)字符添加到文本框的,所以每添加一次就會(huì)觸發(fā)一次Text_Change事件,例如掃描到的數(shù)據(jù)是一個(gè)長(zhǎng)度為10的字符串,就會(huì)觸發(fā)10次Text_Change事件。

問:對(duì)于掃描到的數(shù)據(jù)的控制

答:因?yàn)槟壳绊?xiàng)目中要求掃描到的數(shù)據(jù)必須經(jīng)過后臺(tái)轉(zhuǎn)換才能顯示,所以,不能直接顯示掃描到的數(shù)據(jù)。目前我的解決方法有兩個(gè)。不過首先要設(shè)置掃描器在每次掃描的結(jié)果后面加一個(gè)回車鍵,這樣代表結(jié)束,便于判斷。

一個(gè)方法是在文本框的Text_KeyPress事件中判斷輸入的字符是不是回車鍵,如果是,則獲得文本框數(shù)據(jù),然后到后臺(tái)查詢轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字,然后將該數(shù)值賦值到文本框中,所有操作在事件中進(jìn)行,這個(gè)方法的確定是,如果后臺(tái)服務(wù)比較卡,可能會(huì)導(dǎo)致客戶看到不應(yīng)該顯示的數(shù)據(jù)。

另一個(gè)則是我從網(wǎng)上查到的,首先將頁面的KeyPreview設(shè)置為true,然后在頁面上的KeyPress事件中捕獲篩選所需的文本。這樣做的好處是只有在全部處理結(jié)束后才顯示文本,不會(huì)讓客戶看到錯(cuò)誤的數(shù)據(jù)。

        //處理掃描數(shù)據(jù)的方法
        private string Handle(string str)
        {
            return str;
        }
        //全局緩存變量
        private string strtextbox2 = string.Empty;
        //窗體按鍵事件
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {   //判斷是否是指定控件處于焦點(diǎn)狀態(tài)
            if (this.textBox2.Focused)
            {   //判斷輸入的是不是回車鍵
                if (e.KeyChar == (char)Keys.Enter)
                {   //對(duì)迄今為止獲得的緩存數(shù)據(jù)傳回后臺(tái)處理
                    //然后賦值給頁面顯示
                    this.textBox2.Text = Handle(strtextbox2);
                    //清空緩存
                    strtextbox2 = string.Empty;
                }
                else
                {   //累積添加到緩存變量中
                    strtextbox2 += e.KeyChar;
                }
                //代表事件到此結(jié)束,不在向下傳遞
                e.Handled = true;
            }
        }

好吧,暫時(shí)先這樣,以后想到什么再補(bǔ)充。

認(rèn)真活好每一天!

網(wǎng)站題目:關(guān)于WinCE開發(fā)的一些心得(2)
文章轉(zhuǎn)載:http://jinyejixie.com/article38/psipsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站策劃、ChatGPT、商城網(wǎng)站、全網(wǎng)營(yíng)銷推廣建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
西和县| 台南县| 南汇区| 高州市| 同德县| 志丹县| 新丰县| 夏河县| 永仁县| 内乡县| 贵南县| 雷波县| 银川市| 收藏| 鹿邑县| 太原市| 永清县| 开鲁县| 恩施市| 磴口县| 磴口县| 子长县| 宝丰县| 泉州市| 台东市| 天气| 思茅市| 富宁县| 德格县| 名山县| 揭东县| 常宁市| 新野县| 扎兰屯市| 祁阳县| 河南省| 松阳县| 峨边| 南开区| 洛川县| 驻马店市|