如何只在指定的条件才显示dbgrid的popupmenu(20分)

  • 主题发起人 主题发起人 boy2002
  • 开始时间 开始时间
B

boy2002

Unregistered / Unconfirmed
GUEST, unregistred user!
dbgrid的popupmenu属性设了一个popupmenu控件,有两个菜单项,分别是‘增加记录’和
‘删除记录’,如何通过编程,只有在用户按了‘增加’按钮或‘删除’按钮后,再右
击dbgrid时才显示popupmenu,在浏览状态单击右键不能显示popupmenu
 
你可以设置一个boolean型变量,只有在用户按了‘增加’或‘删除’按钮后变成True,
在DBGrid的mousedown事件中控制一下就可以了!试一试,挺简单的。
 
数据集控件(TQuery、TADOQuery、TTable、TADOTable....)有AfterDelete和AfterInsert
事件(这些数据集控件是与你想控制的dbGrid相关的),你在这些事件中动态的设置与
dbGrid相关的PopupMenu的AutoPopup属性就可以了。
具体如下如下:
procedure TFormInStock.FormCreate(Sender: TObject);
begin
Mypopup.AutoPopup := false;
end;

//ADoTable1AfterInsert(DataSet: TDataSet);的事件与此相同。
procedure TFormInStock.ADOTable1AfterDelete(DataSet: TDataSet);
begin
MyPopup.AutoPopup := true;
end;

 
在不需要弹出菜单时将dbgrid.popupmenu赋值为nil就可以了。
如:
MyDBBrid.PopupMenu:=nil;//取消右键菜单
MyDBBrid.PopupMenu:=PopupMenu1;//重新生效邮件菜单
 
dbgrid1.popupmenu:=nil;
然后在新增或修改时再dbgrid1.popupmenu:=popupmenu;
 
接受答案了.
 
后退
顶部