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

如何让游标不能进入dbgrid的最左边的栏位?

答題得分者是:RootKit
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-16 09:53:52 IP:122.235.xxx.xxx 訂閱
请教各位大大: 
如何在使用上.下,左,右或enter键,mouse时, 让游标都始终不能进入dbgrid的最左边的栏位?
因为这是个序号栏位,录入数据时没必要把游标进入到这个栏位中去,这样可以节约时间
不胜感激!
編輯記錄
luowy651 重新編輯於 2009-02-16 10:04:02, 註解 無‧
luowy651 重新編輯於 2009-02-16 10:05:20, 註解 無‧
luowy651 重新編輯於 2009-02-16 10:28:19, 註解 無‧
eaglewolf
資深會員


發表:4
回覆:268
積分:429
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-16 10:42:21 IP:211.75.xxx.xxx 訂閱
最快的方法就是把該Column的Visible屬性設為False
dbgrid1.Columns[0].Visible := False;

===================引 用 luowy651 文 章===================
请教各位大大:
如何在使用上.下,左,右或enter键,mouse时, 让游标都始终不能进入dbgrid的最左边的栏位?
因为这是个序号栏位,录入数据时没必要把游标进入到这个栏位中去,这样可以节约时间
不胜感激!
------
先查HELP
再查GOOGLE
最後才發問

沒人有義務替你解答問題
在標題或文章中標明很急
並不會增加網友回答速度

Developing Tool:
1.Delphi 6
2.Visual Studio 2005
3.Visual Studio 2008
DBMS:
MS-SQL
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-16 11:13:18 IP:122.235.xxx.xxx 訂閱

感谢eaglewolf大大的关注,是我没说清楚,这个栏位是一定要显示的,不能将其visible设为false

===================引 用 eaglewolf 文 章===================
最快的方法就是把該Column的Visible屬性設為False
dbgrid1.Columns[0].Visible := False;

===================引 用 luowy651 文 章===================
请教各位大大:
如何在使用上.下,左,右或enter键,mouse时, 让游标都始终不能进入dbgrid的最左边的栏位?
因为这是个序号栏位,录入数据时没必要把游标进入到这个栏位中去,这样可以节约时间
不胜感激!
編輯記錄
luowy651 重新編輯於 2009-02-16 11:14:11, 註解 無‧
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-16 11:46:46 IP:61.222.xxx.xxx 訂閱
作法有很多,必須處理游標及焦點部分。
阻止選擇欄位,大概想到的作法:
1. SelectCell
Override SelectCell 方法,若 Col = X 則 Result := False

2.在 OnColEnter 事件
變更 Options 及 HideEditor

....
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-02-16 20:50:07 IP:219.82.xxx.xxx 訂閱
感谢Rootkit大大的回复,小弟初学,功力有限,能否再详细些?

===================引 用 RootKit 文 章===================
作法有很多,必須處理游標及焦點部分。
阻止選擇欄位,大概想到的作法:
1. SelectCell
Override SelectCell 方法,若 Col = X 則 Result := False

2.在 OnColEnter 事件
變更 Options 及 HideEditor

....
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-02-17 00:33:42 IP:61.67.xxx.xxx 未訂閱
使用 fixedcol 就可以解決了
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-02-17 08:22:34 IP:122.235.xxx.xxx 訂閱
汗!小弟初学,能否请大大说得更详细些?
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-02-17 12:49:50 IP:61.222.xxx.xxx 訂閱
一直想不起來,原來是忘了這一招。當然外觀上,會有些不同。

記得是 TStringGrid(DBGrid1).FixedCol := 2;
試一下!不清楚 TCustomGrid 是否有 Published 此屬性。

===================引 用 P.D. 文 章===================
使用 fixedcol 就可以解決了
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-02-17 15:53:04 IP:122.235.xxx.xxx 訂閱
谢谢. TStringGrid(DBGrid1).FixedCols:=2;确实可用,但是,会引起dbgrid的变形,但我在网路上找了很多有关资料,都没能解决这个问题,或许,这个问题确实很难解

===================引 用 RootKit 文 章===================
一直想不起來,原來是忘了這一招。當然外觀上,會有些不同。

記得是 TStringGrid(DBGrid1).FixedCol := 2;
試一下!不清楚 TCustomGrid 是否有 Published 此屬性。

===================引 用 P.D. 文 章===================
使用 fixedcol 就可以解決了
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-02-17 17:15:10 IP:61.222.xxx.xxx 訂閱
難解!?  都說了哩..

TDBGrid = Class(DBGrids.TDBGrid)
protected
function SelectCell(ACol, ARow: Longint): Boolean; Override;
end;
TForm1 = class(TForm)
...
implementation
function TDBGrid.SelectCell(ACol, ARow: Longint): Boolean;
begin
Result := inherited SelectCell(ACol, ARow);
// 第二欄不讓它選
if ACol = 2 then Result := False;
end;

很多方法啦...



===================引 用 luowy651 文 章===================
谢谢. TStringGrid(DBGrid1).FixedCols:=2;确实可用,但是,会引起dbgrid的变形,但我在网路上找了很多有关资料,都没能解决这个问题,或许,这个问题确实很难解

===================引 用 RootKit 文 章===================
一直想不起來,原來是忘了這一招。當然外觀上,會有些不同。

記得是 TStringGrid(DBGrid1).FixedCol := 2;
試一下!不清楚 TCustomGrid 是否有 Published 此屬性。

===================引 用 P.D. 文 章===================
使用 fixedcol 就可以解決了
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#11 引用回覆 回覆 發表時間:2009-02-17 21:35:47 IP:58.100.xxx.xxx 訂閱
太感谢RootKit大大了,这个问题困扰了我很久,今日得解,实在感恩!


===================引 用 RootKit 文 章===================
難解!? 都說了哩..

TDBGrid = Class(DBGrids.TDBGrid)
protected
function SelectCell(ACol, ARow: Longint): Boolean; Override;
end;
TForm1 = class(TForm)
...
implementation
function TDBGrid.SelectCell(ACol, ARow: Longint): Boolean;
begin
Result := inherited SelectCell(ACol, ARow);
// 第二欄不讓它選
if ACol = 2 then Result := False;
end;

很多方法啦...



===================引 用 luowy651 文 章===================
谢谢. TStringGrid(DBGrid1).FixedCols:=2;确实可用,但是,会引起dbgrid的变形,但我在网路上找了很多有关资料,都没能解决这个问题,或许,这个问题确实很难解
系統時間:2024-05-06 23:45:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!