找回密码
 立即注册

QQ登录

只需一步,快速开始

zxc9089
中级会员   /  发表于:2014-9-24 14:00  /   查看:12724  /  回复:9


如图所示,如何能够在鼠标右键点击行的时候弹出菜单栏并选中行?

还有是否当C1FlexGrid设为GridTreeView模式是行的边框就没有了?能再加上行边框吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

9 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-9-24 18:54:00
沙发
回复 1楼zxc9089的帖子

1.微软都会给用户提供ContextMenuScrip属性来弹出右键菜单,C1FlexGrid也有这个接口。
2.C1FlexGrid创建树形图可以参考中文文档:http://www.gcpowertools.com.cn/d ... nts/c1flexgrid8.htm
另外,请问,你是设置什么属性设为GridTreeView?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
中级会员   /  发表于:2014-9-25 10:23:00
板凳
我用的C1 FOR WPF.

1.你好,C1FlexGrid可以设置右键菜单,这个我知道。我的设置如下图:


我的问题是将 ContextMenu 绑定上去后,在列表中某一行上右键点击弹出菜单栏,我期望能够在弹出菜单栏的同时选中我所点击的那一行数据。 请问有什么属性设置吗?

2.GridTreeView 这个可能是我表达的错误。  我是在 C1FlexGrid 控件中添加了属性 ChildItemsPath,使其展现为树形结构。



如图中所示,C1FlexGrid  中每条数据行分隔线没有了。这个可以添加什么设置让它能每行都能够有一个分隔线呢?如下图:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-25 15:13:00
地板
回复 3楼zxc9089的帖子

1.当ContextMenu弹出后,操作权就会由C1FlexGrid转给ContextMenu,一切都是微软的行为,这是微软的标准控件。你可以去查阅有关ContextMenu的相关资料,是否支持设置属性弹出时候选中某一个Item。
2.C1FlexGrid提供GridLinesVisibility和GridLinesBrush,可以设置横线或竖线,以及线的颜色。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
中级会员   /  发表于:2014-9-25 20:05:00
5#
回复 4楼Alice的帖子


我用WPF自带的GridView做了尝试 发现它是可以实现右键选中行的。 FlexGrid应该是继承它的吧。为什么它没有这个功能呢?下面是我用GridView实现的界面



其实不管是否添加ContextMenu,我希望FlexGrid能够实现右键选中行的效果就可以了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-26 11:17:00
6#
回复 5楼zxc9089的帖子

之前可能对你的需求有误解,你的需求和ContextMenu无关。
你的需求其实就是C1FlexGrid的右键的时候选中鼠标所在的行。
C1FlexGrid下有HitTest方法,可以获取鼠标所在位置的相关信息,包括,C1FlexGrid鼠标所在的行,C1FlexGrid提供了Select方法,可以选择一个单元格或是一行。
你可以在C1FlexGrid鼠标右键相关事件调用如下方法:
  1. HitTestInfo info= this.c1FlexGrid1.HitTest(e);
  2.             CellRange cr = new CellRange(info.Row, 0, info.Row, this.c1FlexGrid1.Columns.Count - 1);
  3.             this.c1FlexGrid1.Select(cr, false);
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
中级会员   /  发表于:2014-9-28 09:49:00
7#
回复 6楼Alice的帖子

这正是我需要的,非常感谢!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-28 11:08:00
8#
回复 7楼zxc9089的帖子

不用客气。

评分

参与人数 1满意度 +5 收起 理由
zxc9089 + 5 问题已解决

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zxc9089
中级会员   /  发表于:2014-10-10 10:59:00
9#
回复 8楼Alice的帖子

你好,我又尝试了使用 C1DataGrid,发现它也是无法实现右键选中行的效果,它也没有HitTest方法。不知C1DataGrid是否也有对应的方法实现右键选中行呢?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-10 11:41:00
10#
回复 9楼zxc9089的帖子

你可以使用PreviewMouseRightButtonDown事件。代码参考:
  1. private void c1DataGrid1_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
  2. {
  3.     foreach (var item in c1DataGrid1.Rows)
  4.     {
  5.         if (item.IsMouseOver)
  6.         {
  7.             c1DataGrid1.SelectedIndex = item.Index;
  8.             break;
  9.         }
  10.     }
  11. }
复制代码

评分

参与人数 1满意度 +5 收起 理由
zxc9089 + 5 问题解决

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部