Board logo

標題: [發問] 以 Enter 替代按鈕 [打印本頁]

作者: jesscc    時間: 2021-8-17 16:43     標題: 以 Enter 替代按鈕

原程式是我在D3輸入查詢文字後(不想用TextBox物件),按按鈕可以進行查詢,但現在希望按鍵盤 Enter 也可調用CommandButton1的查詢功能,該如何做呢?
[attach]33899[/attach]
作者: singo1232001    時間: 2021-8-17 21:22

回復 1# jesscc
作者: jesscc    時間: 2021-8-18 09:17

試 Run 了大大的檔案,有幾個問題
1輸入關鍵字後,按下 Enter,只能觸發一次,將儲存格位址重新選回$D$3,再按 Enter 就沒有作用了,按按鈕才能觸發。
2如果此時按Delete鍵清除 $D$3關鍵字,也會觸發。
3如果$D$3沒輸入任何關鍵字,按按鈕仍然會觸發,按 Enter 無作用。

以上第2,3點,似乎不太正常
我希望$D$3被選取後,若無輸入任何關鍵字就按 Enter進行查詢,不要有任何動作,或者出現一個提示。
其實我想要的效果就是類似一般市售軟體的查詢功能,只不過關鍵字輸入框換成儲存格$D$3,鍵盤 Enter 和查詢按鈕做一個焦點連結。
作者: singo1232001    時間: 2021-8-18 14:01

本帖最後由 singo1232001 於 2021-8-18 14:04 編輯

[attach]33905[/attach]
作者: Andy2483    時間: 2021-8-18 15:13

[attach]33907[/attach][attach]33907[/attach]回復 1# jesscc
作者: jesscc    時間: 2021-8-19 08:22

謝謝S大。試 Run 後感覺功能是我想要的,但是輸入關鍵字後,用滑鼠點選[D3]以外任意儲存格,這時鍵盤 Enter 就沒作用了,證明鍵盤 Enter 和查詢按鈕沒達成焦點連結,不知這是不是Worksheet_SelectionChange觸發的硬傷。
謝謝A大。輸入關鍵字後,用滑鼠點選任意儲存格都會觸發,鍵盤 Enter 和查詢按鈕沒達成焦點連結。
作者: Andy2483    時間: 2021-8-19 11:48

回復 6# jesscc

謝謝S大。試 Run 後感覺功能是我想要的,但是輸入關鍵字後,用滑鼠點選[D3]以外任意儲存格,這時鍵盤 Enter 就沒作用了,證明鍵盤 Enter 和查詢按鈕沒達成焦點連結,不知這是不是Worksheet_SelectionChange觸發的硬傷。
謝謝A大。輸入關鍵字後,用滑鼠點選任意儲存格都會觸發,鍵盤 Enter 和查詢按鈕沒達成焦點連結
    兩段紅色字是不是矛盾了? 還是 其他意思?
作者: jesscc    時間: 2021-8-19 12:40

回復 7# Andy2483

A大,我應該這樣敘述
輸入關鍵字後,沒有立刻按 Enter 而是用滑鼠點選[D3]以外任意儲存格,此時會有一次因滑鼠點擊的觸發,但這次觸發之後鍵盤 Enter 就沒作用了。
所以目前的程式是輸入關鍵字後,必須按 Enter 才會有一次Enter觸發(但這個Enter觸發並不是因為連結了查詢按鈕,因為不管滑鼠點在哪裡,查詢按鈕是隨時可觸發的)
作者: singo1232001    時間: 2021-8-19 13:25

回復 8# jesscc


    [attach]33911[/attach]
自動觸發(2)試試 因為你的需求 與你原先的解釋有點模糊
我只能用猜的
作者: jesscc    時間: 2021-8-19 17:37

其實我要的效果簡單表達就是這樣
CommandButton1 --> Click --> 觸發(只要[D3]<>"",不論儲存格的選取發生任何變化)
鍵盤 Enter --> Click --> 觸發(只要[D3]<>"",不論儲存格的選取發生任何變化)
所以 鍵盤 Enter = CommandButton1

S大的V1版本比較能對應我要的效果,因為我查過一些類似 key code=13 的寫法,似乎可以把焦點對應到鍵盤ENTER上,所以思路一直朝這方向發展。
作者: singo1232001    時間: 2021-8-19 18:52

[attach]33919[/attach]回復 10# jesscc

3跟4 玩玩看
    沒招了 剩下看有沒有大大能幫你= =
作者: jesscc    時間: 2021-8-19 20:25

感謝兩位大大的指導。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)