請教 StringGrid 如何控制某Col可編輯,另外唯讀? |
答題得分者是:P.D.
|
misjason
一般會員 發表:9 回覆:17 積分:5 註冊:2007-03-14 發送簡訊給我 |
各位前輩好!
小弟這有一個StringGrid預設Options.goEditing = True 想設定成col in [1,3,5] = 可編輯, else 唯讀, 目前寫在StringGrid.onMouseDown中MouseToCell去判斷是哪個Col再賦予可編輯或唯讀, 但是...... 小弟發現在可編輯的Col編輯完當Mouse點到隔壁的唯讀Col時... 第一次點它還是可編輯 必須在那"唯讀的Col"上下移動, 才會變成唯讀的狀態... 怎麼會這樣呢? 試好久囉~ 不知道有沒有好方法?? 小弟曾想過如果把架構改成TClientDataSet DBGrid來做的話是不是會比較好控制... 謝謝各位先進!
------
請多多指教,謝謝! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
如下:
[code delphi] procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin if ACol in [1,3,5] then stringgrid1.Options:= stringgrid1.Options [goEditing] else stringgrid1.Options:= stringgrid1.Options-[goEditing]; end; [/code] 使用dbgrid 反而控制上更麻煩, 不過資料連結上是容易的多! 但如果你的資料很大, 不建議用strginggrid, 因為本身stringgrid 就是使用類似陣列buffer來處理物件, 很吃資源的! |
misjason
一般會員 發表:9 回覆:17 積分:5 註冊:2007-03-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |