如何讓 Grid 中的指定的Column失去 焦點 |
尚未結案
|
soulin12
一般會員 發表:22 回覆:21 積分:8 註冊:2003-05-07 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
假設 有 7 個 Coloum 第 3 第 4 個不而輸入的話 :
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_RETURN then // 若是按 enter case DBGrid1.SelectedIndex of 2..4 : DBGrid1.SelectedIndex := 5; //若在 2-4欄跳到 5 7 : DBGrid1.SelectedIndex := 1; //若在 7 欄跳到 1 else DBGrid1.SelectedIndex := DBGrid1.SelectedIndex 1 //其他的跳到下一欄 end; end;發表人 - Justmade 於 2003/06/18 23:09:34 |
soulin12
一般會員 發表:22 回覆:21 積分:8 註冊:2003-05-07 發送簡訊給我 |
Justmade:
我還有一點過份的要求,你能幫我解答一下嗎?假如我把光標向回移的時候,我也想達到我的要求,直接跳到前某幾列上去,那麼就又要跑一個 case,這都沒所謂,但如果我用 Mouse 把列的位置任意交換幾下,改變一下他們的順序,這些Case所執行的結果就不是我所要的了,能否以FieldName等的方式來鎖定它們,那麼不管用戶怎樣移動 Column,鎖定的列都不會被修改,就像 VFP 中的 ColumnX.Enabled = .F. 一樣的結果,怎麼移它們的數據也改不了 謝謝
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
可參考一下 :
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30526
裡便範例的 onEnter / onColEnter 處理,改用 SelectedField 代替 SelectedIndex 在 dbgrid.onColEnter 事件用
if dbgrid.selectedField = FIeldX then dbGrid.selectedFIeld := FieldY
else if ...... 另外,除非是答題不能解答你題出的問題,否則新問題或其他你自己沒說明的問題請開新主題來問,因為懂得答的不一定是同一人,到時三四個人每人答過你不斷發問的新問題那你應給分誰呢?
|
soulin12
一般會員 發表:22 回覆:21 積分:8 註冊:2003-05-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |