2011-03-02 20 views
0

我正在使用vb.net進行數據輸入的最後一年項目 我想讓項目更加用戶友好 我使用代碼通過按下'Enter'來更改控件焦點(ASCII 13).. 並通過在我的項目中按'Esc'(ASCII 27)... 來清除當前控件的內容。一個窗體包含至少300個控件(t1,t2,t3,t4 ...)當用戶按下ENTER時更改主動控制

所以在T1的按鍵事件我已經writen

if asc(e.keychar)=13 then 
    t2.focus 
elseif asc(e.keychar)=27 then 
    t1.text=nothing 
end if 

代碼工作正常,但產生ñ當我按下警報蜂鳴ENTER 改變主動控制...... 請幫我刪除蜂鳴警報..

而且由於100的控制它採取LO

回答

2

KeyPressEventArgs.Handled = TRUE;

所以最有可能

e.Handled=true; 

也考慮做e.KeyCode = Keys.Return代替asc(e.keychar)

+0

如果我沒看錯的e.handled = TRUE是使用停用當前按鍵事件所以它不會在我的問題上工作.. – Pramod 2011-03-02 05:19:13

+0

但你在這裏處理't2.focus',不是嗎? – n00b 2011-03-02 05:20:29

+0

我的問題是當焦點從一個控件更改爲另一個控件時的嗶嗶聲... – Pramod 2011-03-02 05:23:01

0

我不認爲當用戶按下輸入是一個好主意推進到下一個控件。

這些都是一些點從微軟的用戶體驗指南注意:

  • Tab鍵和製表位。 Tab鍵是在窗口內導航的主要機制。 Tab鍵只訪問那些帶製表位的控件。所有交互式控件都應該有製表位(除非它們在一個組中),而非交互式控件(如標籤)則不應該。
  • Tab鍵順序。所有帶製表位的控件都按標籤順序訪問。按Tab鍵將輸入焦點按Tab鍵順序移動到下一個控件,而按下Shift + Tab鍵則將輸入焦點移動到前一個控件。
  • 空格鍵,Enter鍵和Esc鍵。空格鍵激活帶輸入焦點的控件,而Enter鍵激活默認按鈕。按Esc鍵取消或關閉窗口。

誰不是新的電腦可以預期按下Tab鍵下得去控制和輸入選擇默認的按鈕或當前選定的按鈕。

使用回車鍵導航窗體上的控件可以讓您的項目成爲許多人的首選。

我建議您按照希望用戶導航控件並停止處理Enter鍵的方式在應用程序上設置Tab鍵順序。

請參閱Keyboard Section of the Windows User Experience Interaction Guidelines瞭解鍵盤輸入的一般接受規則。

+0

好的謝謝你的主意朋友..但是我不想在數據輸入過程中使用雙手......因爲用戶會選擇大部分來自組合框的數據...再一次感謝... – Pramod 2011-03-02 10:13:40

+0

還有一個問題?在表單加載時,表單內容(意味着控件)閃爍...任何想法都可以減少這個... – Pramod 2011-03-02 10:18:16

+0

double buffering?無論如何,你應該問一個單獨的問題:P – n00b 2011-03-02 14:58:40

0

我有這樣的問題,我解決它與使用「e.SuppressKeyPress =真」命令

if asc(e.keychar)=13 then 
e.SuppressKeyPress = True 'Use this command where you don't want that sounds 
    t2.focus 
elseif asc(e.keychar)=27 then 
    t1.text=nothing 
end if 
相關問題