2 u013507170 u013507170 于 2016.04.05 09:32 提问

c# winfrom datagridview 点击列名出现错误

代码:string buttonText = this.dataGridView4.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
错误:
索引超出范围。必须为非负值并小于集合大小
如何解决?

2个回答

bdmh
bdmh   Ds   Rxr 2016.04.05 09:59
已采纳

RowIndex或ColumnIndex可能是-1你自己要判断一下

u013507170
u013507170 我在前面添加了一个 if (e.ColumnIndex < 0) return; 这个还是出现这个错误!
2 年多之前 回复
zhangshangui_2015
zhangshangui_2015   2016.04.05 12:50

e.RowIndex 和e.ColumnIndex都得判断吧,其实获取datagridview中选中的单元格的column和row还有很多方法,比如currentCell,selectedRowIndex等。

u013507170
u013507170 我加了一个抛出异常就没事了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C# 禁止 DataGridView 点击 列标题 排序
C# 禁止 DataGridView 点击 列标题 排序for (int i = 0; i {this.dataGridView3.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;}
c# winform 用代码修改DataGridView列头的名字,设置列名,修改列名
 dataGridView1.Columns[0].HeaderCell.Value = "编号"; dataGridView1.Columns[1].HeaderCell.Value = "号牌号码"; Columns数组从0开始,0代表第一列 注意:必须在可视界面添加完列名后才可使用 
winform中datagrid和datagridview设置列标题的实现
[datagrid]using System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.Windows;using System.Windows.Forms;using System.Data;namespace DgHeader{    public class For
winform dataGridView 点击列标题排序
winform手动绑定数据后,点击列标题不能实现自动排序,苦苦寻找方法,发现下面的是可行的。 //建立DataTable将当前dataGridView中的数据读进DataTable中         public DataTable dvtodt(DataGridView dv)         {             DataTable dt = new DataTable(
datagridview 列头样式设置
1.设置EnableHeadersVisualStyle属性为FALSE.再设置对应的列样式.才可以显示效果.
DataGridView设置列标题不换行
DataGridView设置列标题不换行 dgv.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;  //设置列标题不换行  // 设定包括Header和所有单元格的列宽自动调整 dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.All
winform中DataGridView全选和反选
JS操作Cookie winform中DataGridView全选和反选  2010-05-18 09:37:57|  分类: 學習文章 |  标签: |举报 |字号大中小 订阅 dataGridView    添加checkbox列,全选和反选        //全选,         private void Che
[c#]如何使datagridview查询结果显示为别名(非数据库列名)
有两种方法:(1):在查询的那句SQL代码时: string sql = "select userName as 姓名,userNum as 编号,userClass as 所属部门 from userInfo";(显示的时候就是中文了)。(2):界面操作,把DataGridVi
C# Winform的DataGridView中的chckbox如何全选,单选,多选
点击表头进行全选,在DataGridView中的单击事件写一下代码, private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex == -1)//如果单击列表头,全选. {
DataGridView 索引,添加列
问题1:DataGridView绑定DataTable之后,在界面排序,选择若干行,此时选中的行的index与DataTable中的index不一致,这样若想要对其对应的行进行修改操作,将会造成错误。 Sol: 首先将选中的DataGridView行的DataBoundItem属性转换为DataRowView, 然后通过对应的DataTable中的取出索引。 1 DataRowView d