全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2706
推到 Plurk!
推到 Facebook!

DBGrid 中 FocusControl 的問題

缺席
shininggod
一般會員


發表:16
回覆:20
積分:17
註冊:2009-05-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-03-03 19:46:34 IP:114.32.xxx.xxx 訂閱
假如一開始 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-03-05 10:03:44 IP:211.75.xxx.xxx 未訂閱
不懂

若focus不在DBGrid上
使用DBGrid1.SetFocus 即可
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-03-06 20:55:08 IP:122.126.xxx.xxx 訂閱
直接改 Editormode
shininggod
一般會員


發表:16
回覆:20
積分:17
註冊:2009-05-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-03-08 16:10:38 IP:114.32.xxx.xxx 訂閱
試過了還是一樣Orz
query是一直保持dsEdit的...(兩種focus模式都是)

===================引 用 RootKit 文 章===================
直接改 Editormode
系統時間:2024-04-25 7:53:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!