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

DBGrid中單元格移動問題

答題得分者是:cashxin2002
jerry_nie2008
一般會員


發表:8
回覆:4
積分:2
註冊:2005-04-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-11 15:54:26 IP:219.133.xxx.xxx 未訂閱
各位大大: 我想在DBGrid中按enter鍵達到移動到下一單元格,如果是光標在本行末單元格,就自動跳到下一行的第一單元格的效果. 先謝謝了!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-11 16:31:21 IP:202.47.xxx.xxx 未訂閱
您好﹗    試試如下﹕
procedure TForm3.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
    begin
      if ADOTable1.State = dsBrowse then
        begin
          if DBGrid1.SelectedIndex < (DBGrid1.FieldCount - 1) then
            begin
              DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1;
            end
          else
            begin
              ADOTable1.Next;
              DBGrid1.SelectedIndex := 0;
            end;
        end
      else
      if ADOTable1.State In [dsInsert, dsEdit] then
        begin
          if DBGrid1.SelectedIndex < (DBGrid1.FieldCount - 1) then
            begin
              DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1;
            end
          else
            begin
              ADOTable1.Post;
              ADOTable1.Next;
              DBGrid1.SelectedIndex := 0;
            end;
        end;
    end;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================ 發表人 - cashxin2002 於 2005/05/11 16:36:41
------
忻晟
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-11 16:37:58 IP:210.64.xxx.xxx 未訂閱
你好 可以試試看在form的KeyDown的事件中寫KeyBd_Event(vk_tab,0,0,0),然後把Form的KeyPreview設定成True, 這樣子在按下Enter的時候就會模擬成Tab鍵的功能,在DBGrid中當移動到最後一個單元的時候,就會自動跳下一行!!試試看吧!! Pillar Wang
------
Pillar Wang
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-11 16:44:13 IP:210.64.xxx.xxx 未訂閱
不好意思,補充一下,我的做法在Form上面所有的欄位只要TabStop不要設定成False的元件都會受到Enter鍵轉換成Tab鍵的處理!!所以要用的時候要判斷是不是會影響程式的運作喔!! Pillar Wang
------
Pillar Wang
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-11 16:48:23 IP:61.70.xxx.xxx 未訂閱
您好: 以下參考看看. procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key=13) then key:=9; end;
jerry_nie2008
一般會員


發表:8
回覆:4
積分:2
註冊:2005-04-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-11 17:02:09 IP:219.133.xxx.xxx 未訂閱
謝謝Cashxin2002兄的指點! 同時也謝謝pillar62与supman的提示!用來轉換成Tab鍵的思路也是可取的! 再次謝謝!
系統時間:2024-05-13 6:35:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!