找回密码
 立即注册

QQ登录

只需一步,快速开始

sup_xu

注册会员

3

主题

7

帖子

59

积分

注册会员

积分
59

活字格认证

最新发帖
sup_xu
注册会员   /  发表于:2013-5-3 10:23  /   查看:4824  /  回复:1
我使用ContextMenuStrip 和fpspread绑定,请问如何才能在指定单元格中弹出menu菜单?

1 个回复

倒序浏览
山水
初级会员   /  发表于:2013-5-3 16:16:00
沙发
您好,
      一般情况下, 在绑定一个ContextMenuStrip到FpSpread后,无论右击FpSpread的任何地方,该ContextMenuStrip都将弹出。
为了仅在指定单元格右击时才弹出该ContextMenuStrip,需要自己写代码处理。
      下面的例子代码演示了在FpSpread的MouseDown事件处理器中如何完成您需要的功能。在该示例中,仅当您右击Cells[1,1]时, 该ContextMenuStrip才被绑定到FpSpread然后显示出来。稍微改动一下该例子代码,就能实现在Spread的不同部位右击使其显示不同的context menu。请参考。
        void fpSpread1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Right)
            {
                if (this.fpSpread1.ContextMenuStrip != null)
                {
                    this.fpSpread1.ContextMenuStrip = null;
                }

                HitTestInformation hitTest = this.fpSpread1.HitTest(e.X, e.Y);
                if (hitTest.Type == HitTestType.Viewport && hitTest.ViewportInfo.Column == 1 && hitTest.ViewportInfo.Row == 1)
                {
                    this.fpSpread1.ContextMenuStrip = this.contextMenuStrip1;
                }
            }
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部