全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1016
推到 Plurk!
推到 Facebook!

DBGrid 之 Picklist 欄位可以不讓使用者自行輸入嗎?

尚未結案
kyusikin
一般會員


發表:18
回覆:13
積分:6
註冊:2003-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-20 15:19:25 IP:218.171.xxx.xxx 未訂閱
DBGrid 之 Picklist 欄位可以不讓使用者自行輸入嗎?就是僅讓使用者選擇Picklist裡面的資料即可,不要讓使用者自行輸入其他非選擇之資料。謝謝!
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-20 15:25:38 IP:61.218.xxx.xxx 未訂閱
把有設Picklist的那個TColumn設為ReadOnly試試看
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-20 15:41:50 IP:61.222.xxx.xxx 未訂閱
設成ReadOnly ,肯定是不行的了! 因為會關閉 EditorMode 而導致 PickList 不顯示出來。 解決方式: 1.自己改寫元件。 將TDBGridInplaceEdit 改寫。 2.攔截 KeyPress 事件。有沒有漏洞,我不曉得。 procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin { 假設:第 7 個欄位} if TstringGrid(DBGrid1).Col=7 then begin Key := #0; end; end; 3.用騙的。用DBCombobox 覆蓋到該 Column 的位置。
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-20 15:58:30 IP:61.218.xxx.xxx 未訂閱
嗯,試了一下,果然不行 <>< face="Verdana, Arial, Helvetica">引言: 設成ReadOnly ,肯定是不行的了! 因為會關閉 EditorMode 而導致 PickList 不顯示出來。 解決方式: 1.自己改寫元件。 將TDBGridInplaceEdit 改寫。 2.攔截 KeyPress 事件。有沒有漏洞,我不曉得。 procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin { 假設:第 7 個欄位} if TstringGrid(DBGrid1).Col=7 then begin Key := #0; end; end; 3.用騙的。用DBCombobox 覆蓋到該 Column 的位置。
cashxin2002
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-20 16:44:54 IP:202.62.xxx.xxx 未訂閱
您好﹗    假設DBGrid中的第3個欄位和第5個欄位不允許使用者自行輸入﹐只能通過其欄位的Picklist來選擇值﹐如下﹕
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if ((DBGrid1.SelectedIndex = 2) or (DBGrid1.SelectedIndex = 4) then
      Key := #0;
end;
========================= 大病初愈﹐休養調整中... ========================= 發表人 - cashxin2002 於 2004/10/20 16:46:11
------
忻晟
系統時間:2024-11-25 8:41:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!