請教DBGrid元件的OnKeypress事件相關問題 |
尚未結案
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
請教各位前輩. 小弟在DBGrid元件的OnKeyPress事件中, 輸入如下程式碼, 但當指標移動到指定的SelectIndex欄位時, 似乎并沒有Key=#0的作用(如下紅色處), 還是可以鍵入, 該如何解決呢?
procedure TForm3.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if ADOTable1.State = dsBrowse then begin ADOTable1.Next; end else if ADOTable1.State = dsInsert then begin if DBGrid1.SelectedIndex < (DBGrid1.FieldCount-1) then begin if (DBGrid1.SelectedIndex = 2) or (DBGrid1.SelectedIndex = 3) or (DBGrid1.SelectedIndex = 4) then begin Key := #0; end; DBGrid1.SelectedIndex := DBGrid1.SelectedIndex 1; end else begin ADOTable1.Post; end; end else if ADOTable1.State = dsEdit then begin if DBGrid1.SelectedIndex < (DBGrid1.FieldCount-1) then begin if (DBGrid1.SelectedIndex = 2) or (DBGrid1.SelectedIndex = 3) or (DBGrid1.SelectedIndex = 4) then begin Key := #0; end; DBGrid1.SelectedIndex := DBGrid1.SelectedIndex 1; end else begin ADOTable1.Post; end; end; end; end;懇請指教, 感謝! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
感謝ccchen版主大人的回覆﹒ 小弟所要達到的效果﹐是在ADOTable1處于新增或修改的狀態時﹐對應的DBGrid1中輸入焦點會隨回車鍵(Key=#13)的按下往下一欄位移動﹐直至最后一欄位做Post動作﹐但因為在DBGrid1的欄位編輯器中﹐小弟在IndexNo2, 3, 4欄位設定了PickList屬性﹐所以想做到如果DBGrid1的輸入焦點在這三個欄位上時﹐用Key:=#0來控制不允許做輸入的動作﹐只能從PickList中選取預設的資料﹐但目前的程式碼似乎沒有作用﹐當焦點到這三個欄位時﹐依然可以做Key In﹐這就是小弟的問題所在﹒ 煩請指教﹐感謝﹗ =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |