popmenu的问题。
我有一个dbgrid,根据不同的情况,通过datasource与adoquery相连,dbgrid会根据不同的情况显示不同的adoquery,如adoquery1、adoquery2、adoquery3,只有在显示adoquery3的内容时才显示popmenu,在显示adoquery1和adoquery2的内容时右键点击不出现popmenu,怎么实现? 问题点数:100、回复次数:5Top
1 楼heluqing(鉴之小河〖劳累求充实〗)(vcl .net)回复于 2005-06-03 08:59:44 得分 45
procedure TForm1.DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
case Button of
mbright:
begin
if DataSource1.DataSet.Name = 'ADOQuery3' then
PopUpMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
end;
mbleft:
begin
//...................
end;
end;
end;Top
2 楼qiujsh(www.chinascsoft.com)回复于 2005-06-03 09:00:06 得分 10
在显示adoquery1和adoquery2是
dbgrid.popmenu:=nil;
其他时间
dbgrid.popmenu:=popmenu1;Top
3 楼qi7(与其临渊羡渔 不如退而结网)回复于 2005-06-03 09:00:26 得分 10
在显示adoquery1和adoquery2的内容时把dbgrid的popmenu属性设成nil。Top
4 楼fengzhengren(风筝)回复于 2005-06-03 09:12:11 得分 35
支持1楼,2楼和3楼的方法不可以,因为在MouseUp事件中这样设有一定问题,试一下就知道了。Top
5 楼aladdin2006(回答问题不接分,不想要分,只为提高技术,解决问题)回复于 2005-06-03 09:24:10 得分 0
1,2,3楼的方法 在动态设置 ADOQuery.DataSource:= 。。。。 的时候进行设置或者判断就可以OK
初始的PopupMenu值根据 初始的DataSource 设置Top




