找回密码
 立即注册

QQ登录

只需一步,快速开始

wangleiecho

中级会员

26

主题

94

帖子

658

积分

中级会员

积分
658

活字格认证

wangleiecho
中级会员   /  发表于:2012-5-4 09:47  /   查看:5798  /  回复:6
斑竹好,我使用farpoint的时候,给farpoint一个右键菜单。可是当右键菜单弹出来的时候,然后我使用win+D的系统快捷键切换桌面时候。再切回来,发现右键菜单怎么样也不能清空了,代码如下,麻烦斑竹帮忙 看看,多谢。

        private void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
        {
            Point p = this.fpSpread1.PointToClient(MousePosition);
            try
            {
                if (e.Button == System.Windows.Forms.MouseButtons.Right
                    && this.fpSpread1.HitTest(p.X, p.Y).Type != FarPoint.Win.Spread.HitTestType.ColumnHeader
                    && e.Column != 0)
                {
                    this.InitRButton(e.Row, e.Column);
                }
            }
            catch
            {

            }
        }


        private void InitRButton(int row, int column)
        {
            this.fpSpread1.ContextMenuStrip = null;
            if (column == 4 || column == 5)
            {
                ContextMenuStrip cms = new ContextMenuStrip();
                cms.Items.Add("修改数据");
                this.fpSpread1.ContextMenuStrip = cms;
            }
        }

6 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-4 10:45:00
沙发
通过Win + D离开当前窗体,然后在切换回来时,之前显示的右键菜单依然存在,你可以选择一个菜单项,菜单就会消失

或者,你是想在离开窗体画面时就将右键菜单隐藏起来,再切换回来时看不到右键菜单
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2012-5-4 10:49:00
板凳
设置成null 应该和隐藏是同一个效果吧
private void form1_SizeChanged(object sender, EventArgs e)
        {
            this.fpSpread1.ContextMenuStrip = null;
        }
可是实际上是不起作用的 如果不设置到farpoint上面 则 右键菜单是没有问题的
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2012-5-4 11:05:00
地板
请问 斑竹  有办法 在我切回  窗体的时候 直接让右键菜单 不见吗?下面的代码也是不起作用啊
        private void fpSpread1_ContextMenuStripChanged(object sender, EventArgs e)
        {
            if (this.WindowState == System.Windows.Forms.FormWindowState.Minimized)
            {
                this.fpSpread1.ContextMenuStrip = null;
            }
        }
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-4 11:18:00
5#
我是在Form的Deactivate和ResizeBegin事件中删除的右键菜,代码如下:
  1.     private void Form1_Deactivate(object sender, EventArgs e)
  2.     {
  3.         if (this.fpSpread1.ContextMenuStrip != null)
  4.         {
  5.             this.fpSpread1.ContextMenuStrip.Dispose();
  6.         }            
  7.     }
  8.     private void Form1_ResizeBegin(object sender, EventArgs e)
  9.     {
  10.         if (this.fpSpread1.ContextMenuStrip != null)
  11.         {
  12.             this.fpSpread1.ContextMenuStrip.Dispose();
  13.         }  
  14.     }
复制代码
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2012-5-4 11:45:00
6#
很好用 多谢 斑竹
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-4 12:17:00
7#
哈哈,不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部