[.NET] 關於Focus的使用問題?

看板Visual_Basic作者 (玉鼎)時間12年前 (2012/04/16 03:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
想請問,我的程式現在大致來說 Form1使用Timer在監控剪貼簿Clipbrd是否有資料,若有資料 的話呼叫出Form2並且在Form2檢測按下哪個號碼(數字鍵1~4), 把Clipbrd的資料貼到Form1對應的TextBox(1~4)。 而目前碰到的問題點在於: 當我是在操作Form1使Clipbrd產生資料(ex:在Form1的TextBox 自己輸入資料後再按Ctrl+C),則會跳出Form2後可以直接按下 1~4的按鍵,就可以把資料順利貼到Form1的TextBox內。 但是如果我是在其他部分,例如網頁上複製文字使Clipbrd產生 資料,因為我有對Form2下達Focus的命令,所以Form2有跳出來 並且顯示在最上面。但是按下1~4卻無法執行貼上資料到Form1的 動作。一定要自己滑鼠先點一下Form2後,按下1~4才會貼資料到 Form1去。 而且我又嘗試一種模式,例如我在檔案總管內修改資料夾的名 稱時,我按下Ctrl+C複製後,Form2跳出來了,但是我當下如果 按下1~4,則會直接輸入在修改資料夾名稱的地方,而不是如我 所希望的,Form2跳出來後,我所輸入的1~4是拿來判斷要貼到 Form1哪個TextBox的工作。 想請問各位前輩知道這是哪個部分沒有控制到嘛?感覺好像是 用了Focus只是把畫面呼叫出來,但實際上Window的游標還是在 我滑鼠原本停留的位置。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.88.56

04/16 04:31, , 1F
SetForegroundWindow ??
04/16 04:31, 1F
我不知道是不是我想的太複雜多了,還是這是vb2010才有的功能, 當我使用Form2.Focus()時,順便加上一行Form2.Activate()就可 以達到我的需求了。 也感謝E大讓我有個方向去找答案。 ※ 編輯: sdwufei 來自: 114.43.98.167 (04/17 01:11)
文章代碼(AID): #1FYoQBGE (Visual_Basic)