找回密码
 立即注册

QQ登录

只需一步,快速开始

toure00

注册会员

2

主题

8

帖子

126

积分

注册会员

积分
126
最新发帖
toure00
注册会员   /  发表于:2016-8-3 11:37  /   查看:3731  /  回复:7
本帖最后由 toure00 于 2016-8-4 09:13 编辑

private void c1FlexGrid1_CellChanged(object sender, RowColEventArgs e)
        {
                int row = this.c1FlexGrid1.RowSel;

                if (this.c1FlexGrid1.GetCellCheck(row, 3) == CheckEnum.Checked)
                {
                    c1FlexGrid1.Rows.Selected.Add(row);
                }
                else if (this.c1FlexGrid1.GetCellCheck(row, 3) != CheckEnum.Checked)
                {
                    c1FlexGrid1.Rows.Selected.Remove(row);
                }

        }  

这个会报错为啥啊 报错是 Index超出索引.....
然后我不管报错 try catch进去了
点复选框不进这个事件啊
我的复选框肯定是第三列的

7 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-8-3 14:05:29
沙发
新的问题帮您开了新帖来处理。

超出index就是index超过了最大限度。
另外列的索引都是从0开始计算的,所以你要确认自己一共有几列,rowheader是几列。
想知道Checkbox列的索引,你可以用下面的代码看看(把CheckBox列的列名传进去就知道索引):
  1. this.c1FlexGrid1.Cols["CheckColumn"].Index
复制代码


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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
toure00
注册会员   /  发表于:2016-8-3 16:01:34
板凳
我现在没用c1FlexGrid1.Rows.Selected.Add(row);了
用的list.Add(row),
第一次进去肯定会报错 row=-2
catch不管他,能进界面,进去再选checkbox,就没报错了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-8-3 18:43:21
地板
toure00 发表于 2016-8-3 16:01
我现在没用c1FlexGrid1.Rows.Selected.Add(row);了
用的list.Add(row),
第一次进去肯定会报错 row=-2

异常提示是超过最大索引。
如果你那里查不到是什么问题,把你的Demo发过来,我可以给你看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
unity
社区贡献组   /  发表于:2016-8-4 08:27:12
5#
toure00 发表于 2016-8-3 16:01
我现在没用c1FlexGrid1.Rows.Selected.Add(row);了
用的list.Add(row),
第一次进去肯定会报错 row=-2

  1. private void c1FlexGrid1_CellChanged(object sender, RowColEventArgs e)
  2.         {
  3.                 int row = this.c1FlexGrid1.RowSel;
复制代码


这个代码有问题,应该使用事件参数对应的row
正确的如下:
int row = e.Row;

评分

参与人数 1金币 +500 收起 理由
Alice + 500 很给力!

查看全部评分

回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-8-4 08:53:49
6#
unity 发表于 2016-8-4 08:27
这个代码有问题,应该使用事件参数对应的row
正确的如下:
int row = e.Row;

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
toure00
注册会员   /  发表于:2016-8-4 09:13:14
7#
只有第一次加载会报超出索引的错 row=-2
然后我加了一个判断
if (row<0)
            {
                row = 0;
            }
这样就没问题了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-8-4 12:06:24
8#
toure00 发表于 2016-8-4 09:13
只有第一次加载会报超出索引的错 row=-2
然后我加了一个判断
if (row

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

葡萄城控件服务团队

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