DBGrid 中 FocusControl 的問題 |
缺席
|
shininggod
一般會員 發表:16 回覆:20 積分:17 註冊:2009-05-13 發送簡訊給我 |
假如一開始 focus 在 dbGrid 之外
用 dbGrid.SelectedField.FocusControl; 可以直接選進來, 然後 focus 會是像附件圖片的下半部, focus 在格子裡的字裡面 可是如果在 dbGrid 上,直接按 上/下 , 他會跳到上一筆/ 下一筆記錄, 然後 focus 會是像附件圖片的上半部那樣, focus 在整個 column 第一版: [code delphi] procedure TfmQuery.dbGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=38) or (Key=40) then dgQuery.SelectedField.FocusControl; end; [/code] 他的 focus 還是會跟附件圖片的上半部一樣 第二版 [code delphi] procedure TfmQuery.dbGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key=38) or (Key=40) then keybd_event(VK_RETURN,0,0,0); end; [/code] *按enter會在圖片的兩種 focus 模式中切換..為啥? 這樣會跳一格, 然後從附件圖片的下半部便成附件圖片的上半部那樣, 雖然可以用.. 可不可以換行的時候, 像按上/下/ query.next 的時候直接 focus 成為附件圖片的上半部 附件圖片的下半部的圖的那種 focus 可以直接輸入, 但是不能 ctrl v , 所以不能用 T_T 而且enter之後還要加入其他判斷, 所以最好讓其他按鈕不要用到 enter 以防自爆... ex: 1.enter 後要跳下一筆, 用 query.next 一樣會產生同樣的問題orz 2.enter 後某些格要開另外的視窗做其他的事,關掉回來可能又會發生一次,不過這個先不管.. 第三版 把 dgAlwaysShowEditor 條成 true; 好處是他只要一換就一定是附件圖上面的focus 壞處是 左 右 變成無效, 不過這自己寫就好,至少不是用到enter ... 感想:都是治標不治本的辦法 ? Orz
附加檔案:4b8e4c1a2e8b4_3.JPG
編輯記錄
shininggod 重新編輯於 2010-03-03 19:51:31, 註解 無‧
shininggod 重新編輯於 2010-03-03 19:54:25, 註解 無‧ shininggod 重新編輯於 2010-03-03 20:00:55, 註解 無‧ shininggod 重新編輯於 2010-03-03 20:03:30, 註解 無‧ shininggod 重新編輯於 2010-03-03 20:04:19, 註解 貼圖大失敗Orz‧ shininggod 重新編輯於 2010-03-04 00:12:25, 註解 無‧ |
eaglewolf
資深會員 發表:4 回覆:268 積分:429 註冊:2006-07-06 發送簡訊給我 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
|
shininggod
一般會員 發表:16 回覆:20 積分:17 註冊:2009-05-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |