GBGrid元件超連結 |
尚未結案
|
sundy6719
初階會員 發表:136 回覆:78 積分:42 註冊:2002-07-10 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 試試如下方法﹕
1. 利用程式碼將DBGrid中的此超連接欄位控制無法Key In﹐只能使用Enter鍵使其Focus移到下一個欄位﹐使用者無法在此處輸入資料﹐只能對其PickList中已有的屬性值做選擇﹐相關語法如下﹕
DBGrid1元件的OnKeyPress事件中﹕
begin if (DBGrid1.SelectedIndex = 4) and (DBGrid1.SelectedIndex < DBGrid1.FieldCount -1) then //假設此欄位在DBGrid1中的順序編號為4 begin if Key <> #13 then //如果不是触發Enter鍵 Key := #0; else DBGrid1.SelectedIndex := DBGrid1.SelectedIndex 1; end; end;2. 在有超連接的其它資料集元件(ADOTable2)的AfterPost事件中﹐將其超連接欄位值加入到上述之DBGrid1元件的Column之PickList屬性中﹐相關語法如下﹕ begin ADOTable2.First; While Not ADOTable2.EOF do begin DBGrid1.Column[4].PickList.Clear; //先對PickList做清空動作 DBGrid1.Column[4].PickList.Add(ADOTable2.Fields.Fields[1].AsString; //ADOTable2的超連接欄位順序為1﹐欄位形態以String為例 ADOTable2.Next; end; end; end;3. 在ADOTable2元件的AfterDelete事件中共用AfterPost事件中的程式碼 結果﹕完成如上步驟之后﹐當使用者在DBGrid元件的Column[4]欄位中無法輸入資料﹐只能對其PickList中的資料做選擇﹐而PickList中的資料會隨ADOTable2中對應的資料表的異動而產生相對應的異動﹒ ========================= 大病初愈﹐休養調整中... =========================
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |