線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1546
推到 Plurk!
推到 Facebook!

如何讓 Grid 中的指定的Column失去 焦點

尚未結案
soulin12
一般會員


發表:22
回覆:21
積分:8
註冊:2003-05-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-18 22:24:04 IP:218.16.xxx.xxx 未訂閱
在一個 Grid 中錄入數據時,當錄完某一列的資料,然後它之後的一列,或兩列,或三列的數據不用錄入,按回車或TAB等鍵後直接把光標跳到假如第四列,該怎麼實現呢?謝謝大家
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-18 23:07:24 IP:218.16.xxx.xxx 未訂閱
假設 有 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-19 08:17:22 IP:61.145.xxx.xxx 未訂閱
Justmade: 我還有一點過份的要求,你能幫我解答一下嗎?假如我把光標向回移的時候,我也想達到我的要求,直接跳到前某幾列上去,那麼就又要跑一個 case,這都沒所謂,但如果我用 Mouse 把列的位置任意交換幾下,改變一下他們的順序,這些Case所執行的結果就不是我所要的了,能否以FieldName等的方式來鎖定它們,那麼不管用戶怎樣移動 Column,鎖定的列都不會被修改,就像 VFP 中的 ColumnX.Enabled = .F. 一樣的結果,怎麼移它們的數據也改不了 謝謝
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-19 08:36:19 IP:218.16.xxx.xxx 未訂閱
可參考一下 : 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-19 08:47:18 IP:61.145.xxx.xxx 未訂閱
謝謝你的提醒,下次我會注意的
系統時間:2024-05-18 12:24:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!