用Delphi的DBGrideh,和Access数据库
有一个表1
表1内容
字段1(字符) 字段2(逻辑)
a F
b F
c T
d F
大家都知道在DBGrideh中逻辑型可以用类似Checkbox的形式出现,现在暂时用“T”和“F”代表Checkbox的“打勾”和“空白框”。
在数据库中字段2是全部默认为False,即“F(空白框)”,现在我希望得到一个功能,就是只要在字段2中,用鼠标在某一行中“打勾(T)”后,则光标立刻自动移到下一行,或者立刻触发一下键盘方向键的“下”按钮。(反正两者的达到的效果一样)
希望各位高人赐教一下。
7 个解决方案
#1
沙发…………
#2
这个问题比较难...
#3
在數據集的change事件寫dataset.next行不行?
#4
加入你字段2对应的是DBGridEhColumns1,则在DBGridEhColumns1的DropDownBoxCheckButton事件中用下列代码就可以实现你要的功能,ADOQuery用与指向表1,你试试看行不行:
procedure TForm.DBGridEhColumns1DropDownBoxCheckButton(
Sender: TObject; ACol: Integer; Column: TColumnEh; var Enabled: Boolean);
var
i: Integer;
begin
if DBGridEh.SelectedIndex=i then
begin
ADOQuery.Next;
DBGridEh.SelectedIndex := i+1;
end;
end;
procedure TForm.DBGridEhColumns1DropDownBoxCheckButton(
Sender: TObject; ACol: Integer; Column: TColumnEh; var Enabled: Boolean);
var
i: Integer;
begin
if DBGridEh.SelectedIndex=i then
begin
ADOQuery.Next;
DBGridEh.SelectedIndex := i+1;
end;
end;
#5
看了又看 ...
#6
huangheng1983(绿茶) 的方法效
这样肯定可以(测试通过)
同样将字段加入DBGridEh,然后
procedure TForm1.DBGridEh1Columns1UpdateData(Sender: TObject;
var Text: String; var Value: Variant; var UseText, Handled: Boolean);
begin
PostMessage(DBGridEh1.Handle, WM_KEYDOWN, VK_DOWN, 0);
end;
这样肯定可以(测试通过)
同样将字段加入DBGridEh,然后
procedure TForm1.DBGridEh1Columns1UpdateData(Sender: TObject;
var Text: String; var Value: Variant; var UseText, Handled: Boolean);
begin
PostMessage(DBGridEh1.Handle, WM_KEYDOWN, VK_DOWN, 0);
end;
#7
在DBGridEh中移动光标是会触发保存事件。
#1
沙发…………
#2
这个问题比较难...
#3
在數據集的change事件寫dataset.next行不行?
#4
加入你字段2对应的是DBGridEhColumns1,则在DBGridEhColumns1的DropDownBoxCheckButton事件中用下列代码就可以实现你要的功能,ADOQuery用与指向表1,你试试看行不行:
procedure TForm.DBGridEhColumns1DropDownBoxCheckButton(
Sender: TObject; ACol: Integer; Column: TColumnEh; var Enabled: Boolean);
var
i: Integer;
begin
if DBGridEh.SelectedIndex=i then
begin
ADOQuery.Next;
DBGridEh.SelectedIndex := i+1;
end;
end;
procedure TForm.DBGridEhColumns1DropDownBoxCheckButton(
Sender: TObject; ACol: Integer; Column: TColumnEh; var Enabled: Boolean);
var
i: Integer;
begin
if DBGridEh.SelectedIndex=i then
begin
ADOQuery.Next;
DBGridEh.SelectedIndex := i+1;
end;
end;
#5
看了又看 ...
#6
huangheng1983(绿茶) 的方法效
这样肯定可以(测试通过)
同样将字段加入DBGridEh,然后
procedure TForm1.DBGridEh1Columns1UpdateData(Sender: TObject;
var Text: String; var Value: Variant; var UseText, Handled: Boolean);
begin
PostMessage(DBGridEh1.Handle, WM_KEYDOWN, VK_DOWN, 0);
end;
这样肯定可以(测试通过)
同样将字段加入DBGridEh,然后
procedure TForm1.DBGridEh1Columns1UpdateData(Sender: TObject;
var Text: String; var Value: Variant; var UseText, Handled: Boolean);
begin
PostMessage(DBGridEh1.Handle, WM_KEYDOWN, VK_DOWN, 0);
end;
#7
在DBGridEh中移动光标是会触发保存事件。