我正在Windows Mobile 6上開發應用程序(使用緊湊框架)。該應用程序使用條形碼掃描儀。我想在菜單中實現鍵盤快捷鍵。我在菜單中實現了按鍵事件,因此如果用戶按下1,第一個菜單項將打開,等等。但我的問題是,如果用戶在應用程序在菜單中時用設備掃描條形碼,則應用程序將獲取由掃描儀讀取的條形碼並將其轉換爲按鍵。由於我在子菜單中實現了鍵盤快捷鍵,這意味着如果用戶在菜單中掃描條形碼,則應用程序會在菜單之間移動。帶鍵盤快捷鍵的菜單
我不是100%肯定,但似乎我使用的設備有條形碼閱讀器爲「鍵盤楔」,當他們是那種你從他們那裏得到文本如果用戶從鍵盤鍵入它。
這是怎麼了菜單按鍵來實現:
private void mainList_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case (char)Keys.D1:
productRequestBtn_Click(sender, e);
break;
case (char)Keys.D2:
warehouseBtn_Click(sender, e);
break;
case (char)Keys.D3:
inventoryBtn_Click(sender, e);
break;
case (char)Keys.D4:
ordersBtn_Click(sender, e);
break;
case (char)Keys.D5:
discountBtn_Click(sender, e);
break;
case (char)Keys.D6:
intakeBtn_Click(sender, e);
break;
case (char)Keys.F1:
Close();
break;
}
}
我已經嘗試了不同的方式來實現,但仍未能解決我的問題。
如果有人有任何想法如何可以改變的菜單來實現鍵盤快捷方式,阻止條形碼閱讀器或任何可能的情況相同的工作,我真的很感激它。
關閉楔形模式,並使用供應商提供的條形碼SDK來直接控制(以及從接收掃描事件)的集成式掃描器。 – tcarvin
由於應用程序需要使用不同的供應商設備,因此我無法使用供應商SDK。 – martinv
由您決定,但我發現它很值得花費精力抽出供應商SDK併爲您需要的支持添加支持。那裏沒有那麼多的數據收集設備供應商。這就是說,如果你堅持使用楔形模式,那麼按照@josef的建議使用前導碼和後導碼。 – tcarvin