PDA上控制軟鍵盤

2021-06-15 20:18:11 字數 1058 閱讀 8399

雖然netcf設計為執行在wince上面,但它實際上是乙個完整版framework的乙個子集,確實可以執行在pc上面,有時候專案會要求能夠同時執行在pda和pc上面。但是,使用netcf編寫pda,pc相容的託管應用程式並不是一件簡單的事情,近期的幾篇文章將會通過實際專案中遇到的問題,介紹相應的處理方法。

在wince中,有時需要控制軟鍵盤,這個可以通過microsoft.windowsce.forms.inputpanel().enabled屬性來進行簡單的設定。這種解決方法在硬體裝置和模擬器中執行良好,因為他們是由精裝版的framework來執行的。問題是有的應用會要求程式能夠在pc上面相容執行,此處命名空間microsoft.windowsce並不存在與pc上完整的framework中,因此,這樣編出來的程式在pc上面直接執行的話是會出現無法預料的異常的。由於在pc上執行時,已經失去了軟鍵盤的特性,介面上也不會有軟鍵盤存在,而我們的目標是使應用程式盡可能的能夠相容的執行在pda和pc上面,因此在此我們嘗試放棄microsoft.windowsce.forms.inputpanel而尋找更合適的方案。

有人也許會說,在執行的時候判斷是否執行在wince上,如果是,再呼叫該屬性控制軟鍵盤,如果不是,就什麼都不錯。答案是不行,我自己做過測試,還是會彈出異常,似乎只要這種**存在於程式中,只要執行到該**段所在的函式體中,不管是否執行該段**,都會丟擲異常,可能是完整版的framework在處理這種**時產生的問題。

目前我發現的行之有效的方法是使用p/invoke方法直接呼叫底層api函式,類似於dllimport("coredll")]宣告的函式在pc上時,我們可以通過避免該函式執行的方法來避免異常的丟擲,從而達到期望的相容性。

system;

using

system.collections.generic;

using

system.text;

using

system.runtime.interopservices;

namespace

cafe8.util

...public

static

void

close()

...

Android軟鍵盤的控制以及更改軟鍵盤

edittext是可編輯控制項,往往會為它新增監聽,在軟鍵盤上也會有行為。1 隱藏軟鍵盤 inputmethodmanager imm inputmethodmanager getsystemservice context.inputmethodservice imm.hidesoftinputfr...

Android 軟鍵盤 的控制

一 開啟輸入法視窗 inputmethodmanager inputmethodmanager inputmethodmanager getsystemservice context.input method service 接受軟鍵盤輸入的編輯文字或其它檢視 imm.showsoftinput s...

開啟軟鍵盤

win32的話話,要是這幾個函式sipinfo shsipinfo sipsetinfo sipgetinfo net底下有個inputpanel設定他的enable就ok了。隱藏輸入面板 bool lowersip return fres 公升起輸入面板 bool raisesip void re...